正在生成
详细信息:
检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
使用CDM迁移Oracle数据至DWS,报错图1所示。 图1 报错现象 原因分析 数据迁移,整表查询且该表数据量大,那么查询时间较长。 查询过程中,其他用户频繁进行commit操作。 Oracel的RBS(rollbackspace 回滚时使用的表空间)较小,造成迁移任务没有完成,源库已更新,回滚超时。 建议与总结
增加怎么解决? 原因分析 CDM写Hudi为两段式,先写到hive临时表,然后再执行spark sql写到Hudi,写入行数统计的是写hive临时表的行数,当行数不再增长时,说明源端数据已经读完写到Hive表中,此时作业正在执行Spark SQL过程中,需要等Spark SQL执行完作业才会结束。
作业中源连接为DLI连接时,源端作业参数如表1所示。 表1 DLI作为源端时的作业参数 参数名 说明 取值样例 资源队列 选择目的表所属的资源队列。 DLI的default队列无法在迁移作业中使用,您需要在DLI中新建SQL队列。 cdm 数据库名称 写入数据的数据库名称。 dli 表名 写入数据的表名。 car_detail
id,name from sqoop.user; 模式或表空间 待写入数据的数据库名称,支持自动创建Schema。单击输入框后面的按钮可选择模式或表空间。 schema 表名 读取数据的目标表名,单击输入框后面的按钮可进入表的选择界面 该参数支持配置为时间宏变量,且一个路径名中可
输入或选择数据库名称。单击输入框后面的按钮可进入数据库选择界面。 default 表名 输入或选择Hudi表名。单击输入框后面的按钮可进入表的选择界面。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步。
配置LogHub(SLS)源端参数 作业中源连接为LogHub(SLS)连接时,源端作业参数如表1所示。 表1 LogHub(SLS)作为源端时的作业参数 参数名 说明 取值样例 源连接名称 选择已配置的LogHub(SLS)连接。 sls_link 日志库 目标日志库的名称。 -
当作业将数据导入到Doris时,目的端作业参数如表1所示。 表1 Doris作为目的端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 模式或表空间 待写入数据的数据库名称,支持自动创建Schema。单击输入框后面的按钮可选择模式或表空间。 schema 表名 写入数据的目标表名,单击输入框后面的按钮可进入表的选择界面。
配置Kafka/DMS Kafka源端参数 作业中源连接为Kafka连接或DMS Kafka连接时,源端作业参数如表1所示。 表1 Kafka作为源端时的作业参数 参数类型 参数 说明 取值样例 基本参数 Topics 支持单个或多个topic。 est1,est2 数据格式 解析数据时使用的格式:
作业状态有New,Pending,Booting,Running,Failed,Succeeded,stopped。 其中“Pending”表示正在等待系统调度该作业,“Booting”表示正在分析待迁移的数据。 查看历史记录 查看作业执行结果及最近30天内的历史信息,包括历史执行记录、读取和写入的统计
cdm 自动创表 是否自动创建Hudi表。 不自动创建:不自动建表。 不存在时创建:当目的端的数据库没有“表名”参数中指定的表时,CDM会自动创建该表。如果“表名”参数配置的表已存在,则不创建,数据写入到已存在的表中。 不自动创表 导入前清空数据 选择目的端表中数据的处理方式:
日志中出现“value too long for type character varying”错误提示。 原因分析 这种情况一般是源表与目标表类型不匹配导致,例如源端dli字段为string类型,目标端dws字段为varchar(50)类型,导致精度缺省,就会报:value too
作业中目的连接为Oracle数据库连接时,目的端作业参数如表1所示。 表1 Oracle作为目的端时的作业参数 参数类型 参数名 说明 取值样例 基本参数 模式或表空间 待写入数据的数据库名称,支持自动创建Schema。单击输入框后面的按钮可选择模式或表空间。 schema 表名 写入数据的目标表名,单击输入框后面的按钮可进入表的选择界面。
对于需要事务模式迁移的用户,可以配置“先导入到阶段表”参数,实现迁移失败时数据回滚。 极端情况下,可能存在创建的阶段表或临时表无法自动删除,也需要用户手工清理(阶段表的表名以“_cdm_stage”结尾,例如:cdmtet_cdm_stage)。 CDM访问用户本地数据中心数据源
读Hudi作业长时间出于BOOTING状态怎么解决? 问题原因1:除去Yarn队列资源问题,一般作业是卡在执行Spark SQL读Hudi写Hive临时表,这步执行的速度取决于Hudi表的数据量与Yarn队列剩余资源。 问题排查1:查看Yarn任务,搜索Spark JDBC Server的Yarn任务,找到自己队列下Running
问题描述 目的端是DLI的迁移作业执行成功后,显示迁移的数据条数和DLI表中查询的数量对不上,存在数据丢失。 原因分析 查看客户的作业配置,客户并发数设置的是3,如图所示。 查看DLI官网文档不建议同时对一张表并发插入数据。 解决方案 将作业的抽取并发数改成1 ,重跑作业问题解决。
如何处理CDM从OBS迁移数据到DLI出现迁移中断失败的问题? 此类作业问题表现为配置了脏数据写入,但并无脏数据。这种情况下需要调低并发任务数,即可避免此类问题。 父主题: 故障处理类
properties 是 列表文件源连接 当“列表文件”选择为“是”时,才有该参数。可选择列表文件所在的OBS连接。 OBS_test_link 列表文件OBS桶 当“列表文件”选择为“是”时,才有该参数。该参数表示列表文件所在的OBS桶名。 01 列表文件或目录 当“列表文件”选择为“是”
表名:待写入数据的表名,可以手动输入一个不存在表名,CDM会在DWS中自动创建该表。 存储模式:可以根据具体应用场景,建表的时候选择行存储还是列存储表。一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不多的情况下,适合列存储。如果表的字段个数比较少,查询大部分字段,那么选择行存储比较好。
只有当源端为关系数据库时,才有该参数。表示写入表数据时,用户选择的操作: 不自动创建:不自动建表。 不存在时创建:当目的端的数据库没有“表名”参数中指定的表时,CDM会自动创建该表。如果“表名”参数配置的表已存在,则不创建,数据写入到已存在的表中。 先删除后创建:CDM先删除“表名”参数中指定的表,然后再重新创建该表。
表名:待写入数据的表名,可以手动输入一个不存在表名,CDM会在DWS中自动创建该表。 存储模式:可以根据具体应用场景,建表的时候选择行存储还是列存储表。一般情况下,如果表的字段比较多(大宽表),查询中涉及到的列不多的情况下,适合列存储。如果表的字段个数比较少,查询大部分字段,那么选择行存储比较好。