检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
table 导入开始前 导入数据前,选择是否清除目的表的数据: 不清除:写入数据前不清除目标表中数据,数据追加写入。 清除全部数据:写入数据前会清除目标表中数据。 清除部分数据:需要配置“where条件”参数,CDM根据条件选择性删除目标表的数据。
表1 MongoDB作为目的端时的作业参数 参数名 说明 取值样例 数据库名称 选择待导入数据的数据库。 mddb 集合名称 选择待导入数据的集合,相当于关系数据库的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。
查看CDM迁移作业,源端数据库表名全部为小写,但是迁移的表中是包含有大写字母,将所要迁移的表名跟数据库中保持一致,目的端字段就可以映射出来了,问题解决。 解决方案 在作业设置中,源端配置中迁移的数据库表名应按照数据库中的名称填写或者通过搜索选择表名,问题解决。
问题原因:使用Spark SQL写数据入hudi表,由于配置问题,表schema中会自动增加一列类型为array<string>,名称为col的列。 解决方案:字段映射中删去此列,如果是自动建表,SQL中也要把此列删去。 父主题: Hudi源端案例库
CDM转换空字符串表达式StringUtils.defaultIfEmpty不生效怎么解决? 问题描述 在cdm中使用StringUtils.defaultIfEmpty(value,"0000-00-00 00:00:00")表达式期望将空字符串转换为时间格式,但是没有生效。 解决方案
当MySQL、Oracle、PostgreSQL作为源端时,如果作业报错“Read timed out”怎么处理? 问题描述 当MySQL、Oracle、PostgreSQL作为源端时,如果作业报错“Read timed out”怎么处理? 解决方案 当MySQL、Oracle、PostgreSQL
获取集群列表为空/没有权限访问/操作时报当前策略不允许执行? 问题描述 在使用CDM时,可能遇到如下权限相关的问题: 跳转到CDM首页,获取到的集群列表为空。 提示没有权限访问,如图1所示。 执行启动作业/重启集群等操作时,报错当前策略不允许执行,如图2所示。 图1 没有权限访问
原因分析 CDM写Hudi为两段式,先写到hive临时表,然后再执行spark sql写到Hudi,写入行数统计的是写hive临时表的行数,当行数不再增长时,说明源端数据已经读完写到Hive表中,此时作业正在执行Spark SQL过程中,需要等Spark SQL执行完作业才会结束。
进一步确认:用dlf建个脚本,选择直连连接,执行一条spark sql,看是否报time out的错(甚至可能数据库都list不出来)。如果有以上现象,大概率是MRS集群的jdbc server出了问题。
作业执行过程中,由于源端连接闪断、超时或者源端主动终止了连接导致作业执行失败怎么处理? 问题定位 日志中出现源端的read timeout报错,或者terminate by xxx之类的报错。 规避方案 如果源端网络不稳定,可以使用分片重试能力多次执行作业,可能需要调整作业配置。