检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
是否支持字段转换? 支持,CDM支持以下字段转换器: 脱敏 去前后空格 字符串反转 字符串替换 表达式转换 在创建表/文件迁移作业的字段映射界面,可新建字段转换器,如下图所示。 图1 新建字段转换器 脱敏 隐藏字符串中的关键信息,例如要将“12345678910”转换为“123****8910”,则配置如下:
映射里新增字段。 添加完字段后,新增的字段在界面不显示样值,不会影响字段值的传输,CDM会将字段值直接写入目的端。 如果字段映射关系不正确,您可以通过拖拽字段、单击对字段批量映射两种方式来调整字段映射关系。 如果是导入到数据仓库服务(DWS),则还需在目的字段中选择分布列,建议按如下顺序选取分布列:
数据库写入OBS场景,表中小驼峰命名字段,提示字段不存在 问题描述 数据库写入OBS场景,表中小驼峰命名字段,提示字段不存在。 故障分析 查看日志报PG数据库表字段找不到所致,分析是字段命名使用小驼峰,而PG数据库区分大小写所以无法找到。 解决方案 让客户在连接配置高级属性添加包围符配置,问题解决。
作业配置添加字段,MongoDB字段映射存在问题 问题描述 CDM作业配置源端MongoDB添加字段,目的端MongoDB数据库字段映射,作业运行后,目的端数据库查看,数据存在问题,没有迁移成功。 故障分析 查看文档提示CDM通过获取样值的方式无法获得所有列。 添加字段,因为Mon
字段映射里新增字段。 添加完字段后,新增的字段在界面不显示样值,不会影响字段值的传输,CDM会将字段值直接写入目的端。 如果字段映射关系不正确,您可以通过拖拽字段、单击对字段批量映射两种方式来调整字段映射关系。 创建表达式转换器时,表达式的功能是对该字段的数据进行处理,故不建议使
字段映射里新增字段。 添加完字段后,新增的字段在界面不显示样值,不会影响字段值的传输,CDM会将字段值直接写入目的端。 如果字段映射关系不正确,您可以通过拖拽字段、单击对字段批量映射两种方式来调整字段映射关系。 创建表达式转换器时,表达式的功能是对该字段的数据进行处理,故不建议使
面的“编辑”,进入字段映射界面,如图1所示。 图1 字段映射03 单击添加字段,在弹出框中选择“添加新字段”,如图2所示。 图2 添加字段04 添加完字段后,新增的字段在界面不显示样值,这个不影响字段值的传输,CDM会将字段值直接写入目的端。 这里“添加新字段”的功能,要求源端数
MySQL 支持按表字段分片。 仅当配置“按表分区抽取”时,按表分区分片。 PostgreSQL 支持按表字段分片。 仅当配置“按表分区抽取”时,按表分区分片。 Microsoft SQL Server 支持按表字段分片。 不支持按表分区分片。 Oracle 支持按表字段分片。 仅当配置“按表分区抽取”时,按表分区分片。
CDM作业可以将源表中的字段注释迁移到目标端表吗? 问题描述 CDM作业可以将源表中的字段注释迁移到目标端表吗? 解决方案 不同版本支持的情况不一样。 具体如下: 2.8.6.1版本支持,2.9.1版本不支持,2.9.2.1版本支持。 父主题: 功能类
单击“下一步”,进入“字段映射”配置页面后,单击源字段图标。 图2 配置字段映射 选择“自定义字段”页签,填写字段名称及字段值后单击“确认”按钮,例如: 名称:InputTime。 值:${timestamp()},更多时间宏变量请参见表1。 图3 添加字段 表1 时间变量宏定义具体展示
“按表分区抽取”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。 单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。 说明: 抽取分区字段支持TINYINT、SMA
DLI外表(OBS文件)迁移DWS某字段转义,带有“\” 问题描述 DLI 外表CDM服务将数据迁移到DWS(GaussDB)时候,有个字段迁移后多了一对引号,字段本身的引号多了转义符,其他字段没问题。 源端: 目的端: 故障分析 根据截图可以看出,源端样值中有符号:{ 括号 ”
映射里新增字段。 添加完字段后,新增的字段在界面不显示样值,不会影响字段值的传输,CDM会将字段值直接写入目的端。 如果字段映射关系不正确,您可以通过拖拽字段、单击对字段批量映射两种方式来调整字段映射关系。 如果是导入到数据仓库服务(DWS),则还需在目的字段中选择分布列,建议按如下顺序选取分布列:
作业配置表不存在时自动创建,目的端字段映射不出来怎么处理? 问题描述 迁移SQL Server数据到DWS,目的端配置了当表不存在时自动创建,目的端字段映射不出来 ,如下图所示。 原因分析 查看后端日志报:org.postgresql.util.PSQLException: ERROR:
这种情况一般是源表与目标表类型不匹配导致,例如源端dli字段为string类型,目标端dws字段为varchar(50)类型,导致精度缺省,就会报:value too long for type character varying。类似的问题还有string转bigint,bigint转int。 解决方案
选择源连接名称为分库连接对应的后端连接时,此作业即为普通的MySQL作业。 新建源端为分库连接的作业时,在字段映射阶段,可以在源字段新增样值为“${custom(host)}”样式的自定义字段,用于在多个数据库中的多张表迁移到同一张表后,查看表的数据来源。支持的样值包括: ${custom(host)}
Hudi源端作业,读Hudi作业字段映射多了一列col,作业执行失败怎么处理? 问题描述 读Hudi作业字段映射多了一列col,作业执行失败。 原因分析 使用Spark SQL写数据入hudi表,由于配置问题,表schema中会自动增加一列类型为array<string>,名称为col的列。
根据报错分析,考虑是客户侧字段类型转换存在问题,将值为"false"的bool类型转为int类型报错。进一步排查作业配置第二步,字段映射界面,查看对应关系。 根据上一步字段映射分析,其中"support_gpu_instancing"字段源端为TINYINT类型,源端值为"0"或"1",实际
单击“下一步”,进入“字段映射”配置页面后,单击源字段图标。 图2 配置字段映射 选择“自定义字段”页签,填写字段名称及字段值后单击“确认”按钮,例如: 名称:InputTime。 值:${timestamp()},更多时间宏变量请参见表1。 图3 添加字段 表1 时间变量宏定义具体展示
如何使用表达式方式获取当前时间? 问题描述 如何使用表达式方式获取当前时间? 解决方案 您可以在字段映射界面使用DateUtils.format(${timestamp()},"yyyy-MM-dd HH:mm:ss")表达式获取当前时间,更多表达式设置方式可以参考表达式转换。 父主题: