更新时间:2023-11-14 GMT+08:00
分享

新增字段操作指导

操作场景

  • 作业参数配置完成后,将进行字段映射的配置,您可以通过字段映射界面的可自定义新增字段。
  • 如果是文件类数据源(FTP/SFTP/HDFS/OBS)之间相互迁移数据,且源端“文件格式”配置为“二进制格式”(即不解析文件内容直接传输),则没有字段映射这一步骤。
  • 其他场景下,CDM会自动匹配源端和目的端数据表字段,需用户检查字段映射关系和时间格式是否正确,例如:源字段类型是否可以转换为目的字段类型。
您可以单击字段映射界面的选择“添加新字段”自定义新增字段,通常用于标记数据库来源,以确保导入到目的端数据的完整性。
图1 字段映射
目前支持以下类型自定义字段:
  • 常量

    常量参数即参数值是固定的参数,不需要重新配置值。例如“lable”=“friends”用来标识常量值。

  • 变量

    您可以使用时间宏、表名宏、版本宏等变量来标记数据库来源信息。变量的语法:${variable},其中“variable”指的是变量。例如“input_time”=“${timestamp()}”用来标识当前时间的时间戳。

  • 表达式

    您可以使用表达式语言根据运行环境动态生成参数值。表达式的语法:#{expr},其中“expr”指的是表达式。例如“time”=“#{DateUtil.now()}”用来标识当前日期字符串。

约束限制

  • 如果在字段映射界面,CDM通过获取样值的方式无法获得所有列(例如从HBase/CloudTable/MongoDB导出数据时,CDM有较大概率无法获得所有列),则可以单击后选择“添加新字段”来手动增加,确保导入到目的端的数据完整。
  • 关系数据库、Hive、MRS Hudi及DLI做源端时,不支持获取样值功能。
  • SQLServer作为目的端数据源时,不支持timestamp类型字段的写入,需修改为其他时间类型字段写入(如datetime)。
  • 当作业源端为OBS、迁移CSV文件时,并且配置“解析首行为列名”参数的场景下显示列名。
  • 当使用二进制格式进行文件到文件的迁移时,没有字段映射这一步。
  • 自动创表场景下,需在目的端表中提前手动新增字段,再在字段映射里新增字段。
  • 添加完字段后,新增的字段在界面不显示样值,不会影响字段值的传输,CDM会将字段值直接写入目的端。
  • 如果字段映射关系不正确,您可以通过拖拽字段、单击对字段批量映射两种方式来调整字段映射关系。
  • 如果是导入到数据仓库服务(DWS),则还需在目的字段中选择分布列,建议按如下顺序选取分布列:
    1. 有主键可以使用主键作为分布列。
    2. 多个数据段联合做主键的场景,建议设置所有主键作为分布列。
    3. 在没有主键的场景下,如果没有选择分布列,DWS会默认第一列作为分布列,可能会有数据倾斜风险。
  • 如CDM不支持源端迁移字段类型,请参见不支持数据类型转换规避指导将字段类型转换为CDM支持的类型。

相关文档