云原生多模数据库 Lindorm支持通过多种方式批量快速导入数据,本文介绍在如何通过LTS操作页面提交任务。
创建任务
登录LTS操作页面,具体操作参见开通并登录LTS。
在左侧导航栏,选择数据源管理 > 添加数据源,添加以下数据源。
添加ODPS数据源,具体操作请参见ODPS数据源。
添加Lindorm宽表数据源,具体操作请参见Lindorm宽表数据源。
添加HDFS数据源,具体操作请参见添加HDFS数据源。
在左侧导航栏中,选择。
说明3.8.12.4.3版本前的LTS请选择。
LTS的版本可在Lindorm管理控制台实例详情页的配置信息区域查看。
单击创建任务,配置以下参数。
配置项
参数
描述
选择数据源
源数据源
选择添加的ODPS数据源或者HDFS数据源。
目标数据源
选择添加的Lindorm宽表数据源。
文件类型(非必选)
数据源为HDFS/OSS时需要选择读取的文件类型。
均衡分区
采样百分比,具体说明可参见均衡分区。
点击“均衡分区”选项,开启均衡分区的能力。
在输入框中输入1-100整数数字,来表示采样百分比(推荐值:1%-5%)。
插件配置
Reader配置
读插件配置可参考Reader插件配置示例。
Writer配置
写插件配置可参考Writer插件配置示例。
作业运行参数配置
Executor数量
输入Executor的数量。
任务的最大并发度等于
4 × Executor数量,请根据实际资源和负载需求谨慎配置 Executor数量。spark配置
输入Spark配置,可不填写。参数可参考计算引擎作业配置说明。
spark UDF
使用自定义的UDF。仅支持Java开发的UDF,Jar包请通过计算引擎控制台上传,可参考通过控制台上传文件。
单击创建。
在Bulkload页面单击任务名查看快速导入数据任务。
单击任务名,可以查看Spark任务的UI界面。
单击详情,可以查看Spark任务的执行日志。
说明源数据源迁移到Lindorm宽表,在Lindorm宽表中不同分区的数据分布均匀的情况下,数据容量为100 GB(压缩比为1:4)压缩后导入大概需要1个小时,根据具体情况不同可能会有区别。
查看任务运行状态
查看任务进度
点击任务名列中的链接进入详情页。

等任务成功启动后,点击具体任务链接。
说明任务启动需要一定时间,期间任务链接可能打不开,请耐心等待。
查看任务的整体进度。

查看任务日志
支持通过多种方式查看任务日志,包括控制台查看失败日志、完整日志文件下载、以及运行日志实时跟踪,便于您按需排查问题。
当任务失败后,在任务详情中直接查看FAILED日志。

在任务详情中下载完整日志。

在任务进度页面中查看运行日志。

均衡分区
应用场景
本功能专为批量数据导入(Bulkload)模式设计,适用于以下典型场景:
初始建表数据导入阶段
当新建宽表首次进行数据导入时,系统默认配置的分区数量可能无法匹配海量数据分布特性。若直接导入,数据将在有限的分区中集中堆积,形成局部负载热点,导致吞吐效率下降。非均匀数据源处理场景
当源数据本身存在分布不均衡时,常规分区策略会使数据在特定分区堆积,引发热点任务拖慢整体进度,影响批量导入效率。
技术原理
本功能通过动态分区优化算法实现数据均衡分布,包含三阶段智能处理流程:
采样分析阶段
系统抽取原始数据集1%-5%的样本,分析其分布特征。分区调整阶段
基于分析结果,系统动态调整分区策略,确保数据均匀分布。全量导入阶段
在完成分区动态调整后,系统对全量数据启动分布式并行导入任务。
Reader插件配置示例
MaxCompute任务配置示例
源数据源为MaxCompute,MaxCompute数据的读插件配置示例。
{
"table": "test",
"column": [
"id",
"intcol",
"doublecol",
"stringcol",
"string1col",
"decimalcol"
],
"partition": [
"ds=20250820,hh=12"
],
"numPartitions":10
}参数 | 描述 | 是否必选 | 默认值 |
table | MaxCompute表名。 | 是 | 无 |
column | 需要导入的ODPS列名。 | 是 | 无 |
partition |
| 否 | 无 |
numPartitions | 读取源表时的最大并发度,不写则系统自动计算。 读取数据需要消耗MaxCompute项目的Tunnel Slot资源,请仔细评估;若Slot资源不足,会导致任务失败。 参考文档:数据传输服务概述 | 否 | 无 |
Parquet文件任务配置示例
源数据源为HDFS,Parquet文件的读插件配置示例。
{
"filePath":"parquet/",
"column": [ //parquet文件中的列名
"id",
"intcol",
"doublecol",
"stringcol",
"string1col",
"decimalcol"
]
}参数 | 描述 | 是否必选 | 默认值 |
filePath | 数据所在的路径,有以下四种情况:
| 是 | 无 |
column | 需要导入的列名。 | 是 | 无 |
basePath | 指定分区数据集的根目录,通常在需要获取分区列的时候使用。
| 否 | 无 |
int96RebaseMode | int96时间戳解析方式,解析旧版本int96类型需设置为:"LEGACY"。 | 否 | 无 |
pathGlobFilter | 路径过滤器,支持glob模式的文件路径过滤,例如:*.parquet,只读取parquet文件。 | 否 | 无 |
CSV文件任务配置示例
源数据源为HDFS,CSV文件的读插件配置示例。
CSV为纯文本格式文件,配置任务时需要在"schema"中显式地声明所有字段的类型
{
"filePath":"csv/",
"header": false,
"delimiter": ",",
"schema": [
"id|string",
"intcol|int",
"doublecol|double",
"stringcol|string",
"string1col|string",
"decimalcol|decimal"
],
"column": [
"id",
"intcol",
"doublecol",
"stringcol",
"string1col",
"decimalcol"
]
}参数 | 描述 | 是否必选 | 默认值 |
filePath | 数据所在的路径,有以下四种情况:
| 是 | 无 |
schema | 申明csv文件的所有列名和类型,格式为:列名|类型,例如:
| 是 | 无 |
basePath | 指定分区数据集的根目录,通常在需要获取分区列的时候使用。
| 否 | 无 |
column | 需要导入的列名,必须存在于上述schema申明中 。 | 是 | 无 |
nullValue | 把字段中等于指定字符串的值识别为 null。例如CSV中经常使用 “NULL” 或 “\N” 表示空值,可设置: | 否 | 无 |
mode | 异常数据处理模式。
| 否 | PERMISSIVE |
timestampFormat | 时间戳格式,若字段以时间戳类型解析时为必填,例如: "yyyy-MM-dd HH:mm:ss"。 | 否 | 无 |
dateFormat | 日期格式,若字段以日期类型解析时为必填,例如:"yyyy-MM-dd" | 否 | 无 |
pathGlobFilter | 路径过滤器,支持glob模式的文件路径过滤,例如:*.csv,只读取csv文件。 | 否 | 无 |
ORC文件任务配置示例
源数据源为HDFS,ORC文件的读插件配置示例。
{
"filePath":"orc/",
"column": [
"id",
"intcol",
"doublecol",
"stringcol",
"string1col",
"decimalcol"
]
}参数 | 描述 | 是否必选 | 默认值 |
filePath | 数据所在的路径,有以下四种情况:
| 是 | 无 |
column | 需要导入的列名。 | 是 | 无 |
basePath | 指定分区数据集的根目录,通常在需要获取分区列的时候使用。
| 否 | 无 |
pathGlobFilter | 路径过滤器,支持glob模式的文件路径过滤,例如:*.orc,只读取orc文件。 | 否 | 无 |
数据转换配置示例
注意事项
所有函数必须在reader的配置上使用,常见内置函数使用方法可参考函数说明。
MaxCompute、Parquet、ORC、CSV均支持数据转换。
支持标准的Spark SQL内建函数,参考文档:Spark SQL内建函数。
支持使用UDF函数,使用方式参考作业运行参数配置。
{
"column": [
"CAST(intcol as string)", //将整数转为字符串类型,无法转换则报错
"TRY_CAST('abc' as INT)", //尝试转换类型,失败返回NULL
"COALESCE(nullable_stringcol,'')", //若字段为NULL,则返回空字符串
"DATE_FORMAT('2023-08-15', 'MM/dd/yyyy')", //对日期进行格式化输出
"UNIX_MILLIS(CURRENT_TIMESTAMP())", //获取当前毫秒级时间戳
"CONCAT(stringcol, 'hello', ' world')", //字符串拼接
"SUBSTRING('Spark SQL', 7)", //提取子串,返回:'SQL'
"MD5(stringcol2)" //计算md5的值
]
}Writer插件配置示例
Lindorm SQL表导入
导入Lindorm SQL表格的写插件配置示例。
{
"namespace": "default",
"lindormTable": "xxx",
"compression":"zstd",
"sortMode": "row",
"replication":2,
"columns": [
"id",
"intcol",
"doublecol",
"stringcol",
"string1col",
"decimalcol"
]
}Lindorm SQL表动态列导入
导入Lindorm SQL表动态列的写插件配置示例。
动态列的Schema不持久化存储,导入时必须指定列簇和对应的数据类型。
{
"namespace": "default",
"lindormTable": "xxx",
"compression":"zstd",
"sortMode": "row",
"replication":2,
"columns": [
"id",
"intcol",
"doublecol",
"stringcol",
"f:dynamic_intcol||INT",
"f:dynamic_stringcol||STRING"
]
}Lindorm SQL多列簇表导入
导入Lindorm SQL多列簇表的写插件配置示例。
多列簇表包含多个列簇,其中默认列簇名为'f',同时支持添加其他自定义列簇(如'cf1'、'cf2')。
{
"namespace": "default",
"lindormTable": "xxx",
"compression":"zstd",
"sortMode": "row",
"replication":2,
"columns": [
"id",
"intcol",
"doublecol",
"stringcol",
"cf1:cf1_int",
"cf2:cf2_string"
]
}Lindorm兼容HBase表格导入
Lindorm兼容HBase表格导入的写插件配置示例。
{
"namespace": "default",
"lindormTable": "xxx",
"compression":"zstd",
"sortMode": "row",
"replication":2,
"columns": [
"ROW||String", //ROW固定代表rowkey,String表示类型
"f:intcol||Int", //格式为列簇:列名||列类型
"f:doublecol||Double",
"f:stringcol||String",
"f:string1col||String",
"f:decimalcol||Decimal"
]
}使用API模式导入Lindorm
当前Bulkload模式无法导入索引表数据,若需在导入主表数据时同步构建索引表,可使用API模式。
以下为使用API模式导入Lindorm的写插件配置示例。
使用API模式导入数据时,会直接消耗Lindorm实例的资源,请务必限制导入速率,防止影响线上生产服务性能。
{
"namespace": "default",
"lindormTable": "xxx",
"compression":"zstd",
"sortMode": "row",
"replication":2,
"columns": [
"id",
"intcol",
"doublecol",
"stringcol",
"string1col",
"decimalcol"
],
"writeMode":"api" //指定为API导入模式
}Writer配置参数详情
参数 | 描述 | 是否必选 | 默认值 |
namespace | Lindorm宽表的命名空间 | 是 | 无 |
lindormTable | Lindorm宽表的名称 | 是 | 无 |
columns | 目标表的列映射配置,根据导入至目标表类型填写。
| 是 | 无 |
compression | 压缩算法,推荐使用zstd,其他可选snappy、gz、lzo,不使用压缩算法配置为none(默认值)。 | 否 | none(不用压缩) |
timestamp | 指定时间戳导入(所有字段共用一个时间戳),不配置则默认为系统当前时间。支持以下类型:
| 否 | 系统时间 |
timeCol | 指定源数据中某一列的值为时间戳,每一行可以有不同的时间戳,默认值为-1(无时间列)。
| 否 | -1(无时间列) |
sortMode |
| 否 |
|
replication | 写入文件的副本数,默认值为3,推荐2副本。 | 否 | 3 |
writeMode | 数据导入的方式,分为
| 否 | bulkload |