参考信息
本文介绍数据迁移配置文件中的所有配置参数和数据迁移命令支持的所有参数。
配置文件参数
元数据 (metadata)
参数 | 说明 |
---|---|
enable | 可选字段,控制是否迁移元数据,设置为 true 时迁移元数据;设置为 false 时不迁移元数据。默认值为 false 。 |
engine-type | 指定目的端引擎类型。支持 RELATIONAL (关系引擎)或 TIMESERIES (时序引擎)。元数据迁移时为必选字段。 |
auto-ddl | 控制是否自动执行 DDL 建表语句,设置为 true 时,KaiwuDB 根据元数据自动在目标数据库中创建表,并将转换后的建表语句打印到指定 SQL 文件中。文件存储路径通过 -dataxPath 启动参数指定。设置为 false 时,KaiwuDB 将输出转换后的建表语句,不执行建表操作。元数据迁移时为必选字段。 |
primary-key | 控制生成的 DDL 语句中是否包含主键创建语句。 设置为 true 时包含。设置为 false 时不包含。该参数只适用于关系数据的迁移。 |
constraint | 控制生成的 DDL 语句中是否包含约束创建语句。 设置为 true 时包含。设置为 false 时不包含。该参数只适用于关系数据的迁移。 |
comment | 控制生成的 DDL 语句中是否包含注释创建语句。 设置为 true 时包含。设置为 false 时不包含。 |
index | 控制生成的 DDL 语句中是否包含索引创建语句。 设置为 true 时包含。设置为 false 时不包含。 |
view | 控制生成的 DDL 语句中是否包含视图创建语句。 设置为 true 时包含。设置为 false 时不包含。该参数只适用于关系数据的迁移。 |
业务数据 (data)
参数 | 说明 |
---|---|
enable | 可选字段,控制是否迁移业务数据,设置为 true 时迁移业务数据。设置为 false 时不迁移业务数据。默认值为 false 。 |
readTimeout | 可选字段。源端数据库为 InfluxDB 时,指定读取数据的超时时间。默认值为 10 ,表示 10 秒。支持配置大于 10 的数值。 |
fetchSize | 可选字段。单次读取数据的条数,默认值为 1000 。 |
batchSize | 可选字段。批量写入的数据条数。默认值为 1000 。 |
ignoreTagsUnmatched | 可选字段,源端数据库为 TDengine 时,控制是否忽略不匹配的标签,支持设置为 true (忽略)或 false (不忽略)。 |
setting.speed.channel | 可选字段。迁移通道的数量。 |
setting.speed.byte | 可选字段。迁移通道速度。如果单通道速度为 1 MB,设置为 1048576 时, 表示一个通道。 |
setting.speed.record | 可选字段。传输的记录数量。 |
setting.errorLimit.percentage | 可选字段。出错限制百分比。设置为 1 时,表示 100%。 |
setting.errorLimit.record | 可选字段。发生错误的记录数量,定义错误发生时抛出异常的时机。设置为 0 时,表示报错后立即抛出异常,任务失败。 |
setting.errorLimit.byte | 可选字段。读写数据时允许出现的错误所占的字节数的上限。 |
core.transport.channel.speed.byte | 可选字段。通道速度。 |
core.transport.channel.speed.record | 可选字段。读取的记录数量。 |
源数据库(source)
参数 | 说明 |
---|---|
type | 必选字段。指定源端数据库类型,支持 KAIWUDB 、MYSQL 、ORACLE 、POSTGRESQL 、CLICKHOUSE 、TDENGINE3X 、TDENGINE2X 、INFLUXDB2X 、INFLUXDB1X 、MONGODB 和 OPENTSDB )。 |
url | 指定连接到源数据库的 URL。部分源数据库中,该参数用作 endpoint 的值。 使用 url 时,无需再指定 host 和 port 。 |
host | 指定源端数据库的 IP 地址。仅在未使用 url 参数时需要配置。 |
port | 指定源端数据库的端口号。仅在未使用 url 参数时需要配置。 |
username | 必选字段。源数据库的用户名,InfluxDB 2.X 中,该参数用作 org 的值。 |
password | 必选字段。源数据库的用户密码,密码不得为空,InfluxDB 2.X 中,该参数用作 token 的值。 |
databases.name | 源端数据库名称,大小写敏感,InfluxDB2.X 中会用作 bucket 的值。 |
databases.tables.name | 待读取数据的表名,例如 sensor_data 。指定后系统将只读取该表,未指定时,系统将读取数据库下的全部表数据。InfluxDB 中,该参数用作 measurement 的值。MongoDB 中,该参数用作 collectionName 的值。以库的形式迁移数据时,无需填写该参数。以表的形式迁移数据时,该参数为必选字段。 |
databases.tables.column | 待读取数据的表的列。可配置为使用逗号(, )隔开的字符串或 Json 字符串。 |
databases.tables.querySql[] | 自定义 SQL 查询语句集合。 可使用 column 或 query_sql 参数限定数据读取范围。如果同时设置 column 和 query_sql ,系统将优先使用 query_sql 参数限定数据范围。同步时序表时,数据列第一列必须为时间戳列。 |
databases.tables.splitPk | 可选字段。自定义的切分主键。 |
databases.tables.where | 可选字段。自定义的 where 过滤条件,适用于增量数据迁移。 |
databases.tables.beginDateTime | 指定数据读取起始时间,需与 table 、column 等参数同用。源数据库为 KaiwuDB 或 InfluxDB 时为必选字段。如果已配置 querySql 参数,则无需设置此参数。 |
databases.tables.endDateTime | 指定数据读取终止时间,需与 table 、column 等参数同用。源数据库为 KaiwuDB 或 InfluxDB 时为必选字段。如果已配置 querySql 参数,则无需设置此参数。 |
databases.tables.splitIntervalS | 可选字段。切分时间间隔。该参数只适用于 KaiwuDB 和 InfluxDB。 |
databases.tables.tsColumn | 可选字段。指定时序表第一列(时间戳列),与 databases.tables.column 参数同效。源数据库为 KaiwuDB 时为必选字段。 |
databases.tables.mandatoryEncoding | 可选字段。指定源端字符集类型,该参数只适用于 TDengine 。 |
databases.tables.query | 可选字段。指定源端查询条件,该参数只适用于 MongoDB。 |
目标数据库(target)
下表列出目标数据库的相关配置参数。
参数 | 说明 |
---|---|
type | 必选字段。指定目标数据库类型,支持 KAIWUDB 、KAIWUDB1X 、MYSQL 、ORACLE 、POSTGRESQL 、CLICKHOUSE 、TDENGINE3X 、TDENGINE2X 和 MONGODB )。 |
url | 指定目标数据库的URL。使用 url 时,无需再指定 host 和 port 。 |
host | 指定目标数据库的 IP 地址。仅在未使用 url 参数时需要配置。 |
port | 指定目标数据库的端口号。仅在未使用 url 参数时需要配置。 |
username | 必选字段。目标数据库的用户名。 |
password | 必选字段。目标数据库的用户密码。 |
databases.name | 必选字段。目标数据库的名称,区分大小写。 |
databases.tables.name | 待写入数据的表名。MongoDB 中,该参数用作 collectionName 的值。以库的形式迁移数据时,无需填写该参数。以表的形式迁移数据时,该参数为必选字段。 |
databases.tables.column | 待写入数据的表的列,可以配置为使用逗号(, )隔开的字符串或 Json 字符串。写入的列名数量和顺序必须与读取的列名数量和顺序保持一致。以库的形式迁移数据时,无需填写该参数。以表的形式迁移数据时,该参数为必选字段。 |
databases.tables.writeMode | 可选字段。数据写入模式,支持 INSERT 、UPSERT ,默认为 INSERT 。 |
databases.tables.preSql[] | 可选字段。写入数据前要执行的 SQL 语句。该参数只适用于 KaiwuDB 和 TDengine。 |
databases.tables.postSql[] | 可选字段。写入数据后要执行的 SQL 语句。该参数只适用于 KaiwuDB 和 TDengine。 |
迁移命令参数
说明
从 KaiwuDB 2.2.0 版本开始,迁移命令不再支持 arguments
参数设置。如果需要设置 JVM 参数以增加内存,可以通过修改 DataX 配置文件来实现。
参数 | 说明 |
---|---|
yamlPath | 必选字段,配置文件的路径。 |
dataxPath | DataX 文件夹的路径,迁移业务数据时为必选字段。 |
python | 已安装的 Python 版本,迁移业务数据时为必选字段。 支持以下设置: - Python 2.x: python - Python 3.x: python3 |
示例:
java -jar -DyamlPath=../datax/test/config.yml -DdataxPath=../datax -Dpython=python kaiwudb-datax-utils-2.2.0.jar