导入复制对象配置模板
在创建复制任务时,您可以使用 Excel 配置模板批量导入多个复制对象。模板支持按表名导入,也支持使用表名正则表达式匹配多个源表,并为目标表名配置捕获组替换规则。
前提条件
- 已将复制任务的源数据源和目标数据源添加至 NineData。如何添加数据源,请参见添加数据源。
- 已确认当前复制链路支持自定义复制对象和配置导入。
- 已准备源库名、源表名、目标库名和目标表名,并确认当前账号具有读取源对象元数据的权限。
操作步骤
在左侧导航栏单击数据复制 > 数据复制。
在数据复制页面,单击创建复制。
在数据源与目标页签配置任务名称、源数据源、目标数据源和复制类型,然后单击下一步。
在选择复制对象页签选择自定义对象,然后单击导入配置。
在导入弹窗中按以下步骤处理文件:
- 单击下载模板,下载 Excel 模板。
- 按照模板列名填写数据。每一行表示一个导入对象;不要删除或重命名模板列。
- 单击上传文件,选择已编辑的 Excel 文件。
- 单击导入配置导入配置。
如果使用表名正则表达式,可以单击使用方法查看当前控制台提供的填写说明。
参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
source_table_name | 源表名。填写精确表名时匹配一个表;填写表名正则表达式时可以匹配多个表。 | example_tbl_name |
target_table_name | 目标表名。使用正则表达式时,可以使用 $1、$2 等捕获组替换目标表名中的对应内容。 | target_$1 |
source_database_name | 源库名。 | test_db |
target_database_name | 目标库名。 | test_db_bak |
column_list | 需要同步的字段列表。 | ["col1", "clo2", "col3"] |
extra_configuration | 额外配置的 JSON 字符串。column_rules 用于配置字段映射与取值规则;filter_condition 用于配置行级过滤条件。 | {"extra_config": {"column_rules": [...]}} |
提示
以下 JSON 表示下载的 Excel 模板中的两行完整示例数据。实际上传时,请保留 Excel 模板的列名,并将 extra_configuration 单元格填写为 JSON 字符串;以下代码块不是可直接上传的 JSON 文件。
[
{
"source_table_name": "example_tbl_name",
"target_table_name": "example_tbl_name",
"source_database_name": "test_db",
"target_database_name": "test_db_bak",
"column_list": ["col1", "clo2", "col3"],
"extra_configuration": {
"extra_config": {
"column_rules": [
{
"column_name": "example_column_name",
"target_column_name": "example_target_column_name",
"target_column_type": "int",
"column_value": "current_timestamp()"
},
{
"column_name": "example_column_name",
"target_column_name": "example_target_column_name",
"target_column_type": "int"
}
],
"filter_condition": "example_condition_expression"
}
}
},
{
"source_table_name": "^example_(.*)$",
"target_table_name": "target_$1",
"source_database_name": "test_db",
"target_database_name": "test_db_bak",
"column_list": ["col1", "clo2", "col3"],
"extra_configuration": {
"extra_config": {
"column_rules": [
{
"column_name": "example_column_name",
"target_column_name": "example_target_column_name",
"target_column_type": "int",
"column_value": "current_timestamp()"
},
{
"column_name": "example_column_name",
"target_column_name": "example_target_column_name",
"target_column_type": "int"
}
],
"filter_condition": "example_condition_expression"
}
}
}
]
extra_configuration 中可使用以下字段:
column_name:源列名。target_column_name:目标列名。target_column_type:目标列类型。column_value:字段值,可以填写 SQL 函数或常量值。filter_condition:行级数据过滤条件。
例如,以下内容可作为 extra_configuration 单元格的 JSON 字符串:
{
"extra_config": {
"column_rules": [
{
"column_name": "example_column_name",
"target_column_name": "example_target_column_name",
"target_column_type": "int",
"column_value": "current_timestamp()"
}
],
"filter_condition": "example_condition_expression"
}
}
表名正则表达式
当 source_table_name 使用正则表达式时,target_table_name 可以使用捕获组替换目标表名。例如:
source_table_name: ^t0(.*)$
target_table_name: target_t0$1
该示例会将匹配到的 t001 替换为 target_t001。请确保正则表达式可以匹配源数据源中的表;系统会在导入时校验未找到的源表和未匹配的表名正则表达式。
导入结果
导入后返回对象选择页,请核对源对象和目标对象列表。若源表不存在或表名正则表达式未匹配到源表,系统会显示校验结果及对应的源表名、目标表名、源库名和目标库名。请根据提示修改 Excel 文件后重新导入,或单击取消导入取消本次导入;确认无误后单击继续导入继续导入。