跳到主要内容

导入复制对象配置模板

在创建复制任务时,您可以使用 Excel 配置模板批量导入多个复制对象。模板支持按表名导入,也支持使用表名正则表达式匹配多个源表,并为目标表名配置捕获组替换规则。

前提条件

  • 已将复制任务的源数据源和目标数据源添加至 NineData。如何添加数据源,请参见添加数据源
  • 已确认当前复制链路支持自定义复制对象和配置导入。
  • 已准备源库名、源表名、目标库名和目标表名,并确认当前账号具有读取源对象元数据的权限。

操作步骤

  1. 在左侧导航栏单击数据复制 > 数据复制

  2. 数据复制页面,单击创建复制

  3. 数据源与目标页签配置任务名称、源数据源、目标数据源和复制类型,然后单击下一步

  4. 选择复制对象页签选择自定义对象,然后单击导入配置

  5. 在导入弹窗中按以下步骤处理文件:

    1. 单击下载模板,下载 Excel 模板。
    2. 按照模板列名填写数据。每一行表示一个导入对象;不要删除或重命名模板列。
    3. 单击上传文件,选择已编辑的 Excel 文件。
    4. 单击导入配置导入配置。

    如果使用表名正则表达式,可以单击使用方法查看当前控制台提供的填写说明。

参数说明

参数说明示例
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 文件后重新导入,或单击取消导入取消本次导入;确认无误后单击继续导入继续导入。

相关文档