云搜索服务(CSS)
4.6 管理作业
4.6.1 新建表/文件迁移作业
操作场景
CDM可以实现在同构、异构数据源之间进行表或文件级别的数据迁移,支持表/文件迁 移的数据源请参见表/文件迁移支持的数据源类型。
约束限制
● 记录脏数据功能依赖于OBS服务。
● 作业导入时,JSON文件大小不超过1MB。
前提条件
● 已新建连接。
● CDM集群与待迁移数据源可以正常通信。
操作步骤
步骤1 进入CDM主界面,单击左侧导航上的“集群管理”,选择集群后的“作业管理”。
步骤2 选择“表/文件迁移 > 新建作业”,进入作业配置界面。
图4-33 新建表/文件迁移的作业
步骤3 选择源连接、目的连接:
● 作业名称:用户自定义任务名称,名称由英文字母、下划线或者数字组成,长度 必须在1到240个字符之间,例如“oracle2obs_t”。
● 源连接名称:选择待迁移数据的数据源,作业运行时将从此端复制导出数据。
● 目的连接名称:选择将数据迁移到哪个数据源,作业运行时会将数据导入此端。
如果此处没有可选的连接,可单击“+”添加或者在“连接管理”界面中添加,具体操 作请参见新建连接。
步骤4 选择源连接后,配置作业参数,例如迁移MySQL到DWS时,如图4-34所示。
图4-34 新建作业
每种数据源对应的作业参数不一样,其它类型数据源的作业参数请根据表4-42和表 4-43选择。
表4-42 源端作业参数说明
源端类型 说明 参数配置
● OBS
● 阿里云OSS
● 七牛云KODO
● 腾讯云COS
● 亚马逊对象存储S3
支持以CSV、JSON或二进制格 式抽取数据,其中二进制方式不 解析文件内容,性能快,适合文 件迁移。
暂不支持导入数据到阿里云 OSS、七牛云KODO、腾讯云 COS、亚马逊对象存储S3。
参见配置对象存储源端 参数。
● MRS HDFS
● FusionInsight HDFS
● Apache HDFS
支持以CSV、Parquet或二进制 格式抽取HDFS数据,支持多种 压缩格式。
参见配置HDFS源端参 数。
● MRS HBase
● FusionInsight HBase
● Apache HBase
● CloudTable
支持从MRS、FusionInsight HD、开源Apache Hadoop的 HBase,或CloudTable服务导出 数据,用户需要知道HBase表的 所有列族和字段名。
参见配置HBase/
CloudTable源端参 数。
源端类型 说明 参数配置
● MRS Hive
● FusionInsight Hive
● Apache Hive
支持从Hive导出数据,使用 JDBC接口抽取数据。
Hive作为数据源,CDM自动使 用Hive数据分片文件进行数据分 区。
参见配置Hive源端参 数。
DLI 支持从DLI导出数据。 参见配置DLI源端参
数。
● FTP
● SFTP
支持以CSV、JSON或二进制格
式抽取FTP/SFTP的数据。 参见配置FTP/SFTP源 端参数。
● HTTP 用于读取一个公网HTTP/HTTPS URL的文件,包括第三方对象存 储的公共读取场景和网盘场景。
当前只支持从HTTP URL导出数 据,不支持导入。
参见配置HTTP源端参 数。
● 数据仓库 DWS
● 云数据库 MySQL
● 云数据库 SQL Server
● 云数据库 PostgreSQL
● 达梦数据库 DM
支持从云端的数据库服务导出数 据。
从这些数据源导出数据 时,CDM使用JDBC接 口抽取数据,源端作业 参数相同,详细请参见 配置关系数据库源端参 数。
● FusionInsight LibrA 支持从FusionInsight LibrA导出 数据。
● MySQL
● PostgreSQL
● Oracle
● IBM Db2
● Microsoft SQL Server
● SAP HANA
● MYCAT
● 分库
这些非云服务的数据库,既可以 是用户在本地数据中心自建的数 据库,也可以是用户在ECS上部 署的,还可以是第三方云上的数 据库服务。
● MongoDB
● 文档数据库服务
(DDS)
支持从MongoDB或DDS导出数 据。
参见配置MongoDB/DDS源端参 数。
CloudTable OpenTSDB 支持从OpenTSDB导出数据。 参见配置OpenTSDB源 端参数。
源端类型 说明 参数配置
Redis 支持从开源Redis导出数据。 参见配置Redis源端参 数。
数据接入服务(DIS) 仅支持导出数据到云搜索服务。 参见配置DIS源端参 数。
● Apache Kafka
● DMS Kafka
● MRS Kafka
仅支持导出数据到云搜索服务。 参见配置Kafka/DMS Kafka源端参数。
● 云搜索服务
● Elasticsearch
支持从云搜索服务或
Elasticsearch导出数据。 参见配置Elasticsearch 或云搜索服务源端参 数。
步骤5 配置目的端作业参数,根据目的端数据类型配置对应的参数,具体如表4-43所示。
表4-43 目的端作业参数说明
目的端类型 说明 参数配置
OBS 支持使用CSV或二进制格式批量
传输大量文件到OBS。 参见配置OBS目的端参 数。
MRS HDFS 导入数据到HDFS时,支持设置
压缩格式。 参见配置HDFS目的端
参数。
MRS HBase CloudTable
支持导入数据到HBase,创建新
HBase表时支持设置压缩算法。 参见配置HBase/
CloudTable目的端参 数。
MRS Hive 支持快速导入数据到MRS的
Hive。 参见配置Hive目的端参
数。
数据湖探索(DLI) 支持导入数据到DLI服务。 参见配置DLI目的端参 数。
● 数据仓库 DWS
● 云数据库 MySQL
● 云数据库 SQL Server
● 云数据库 PostgreSQL
支持导入数据到云端的数据库服 务。
使用JDBC接口导入数 据,参见配置关系数据 库目的端参数。
文档数据库服务
(DDS) 支持导入数据到DDS,不支持导
入到本地MongoDB。 参见配置DDS目的端参 数。
CloudTable OpenTSDB 支持从OpenTSDB导出数据。 参见配置OpenTSDB目 的端参数。
目的端类型 说明 参数配置 分布式缓存服务
(DCS) 支持导入数据到DCS,支持
“String”或“Hashmap”两种 值存储方式。不支持导入数据到 本地Redis。
参见配置DCS目的端参 数。
云搜索服务(CSS) 支持导入数据到云搜索服务。 参见配置云搜索服务目 的端参数。
步骤6 作业参数配置完成后,单击“下一步”进入字段映射的操作页面。
如果是文件类数据源(FTP/SFTP/HDFS/OBS)之间相互迁移数据,且源端“文件格 式”配置为“二进制格式”(即不解析文件内容直接传输),则没有字段映射这一步 骤。
其他场景下,CDM会自动匹配源端和目的端数据表字段,需用户检查字段映射关系和 时间格式是否正确,例如:源字段类型是否可以转换为目的字段类型。
图4-35 字段映射
说明
● 如果字段映射关系不正确,用户可以通过拖拽字段来调整映射关系。
● 如果在字段映射界面,CDM通过获取样值的方式无法获得所有列(例如从HBase/
CloudTable/MongoDB导出数据时,CDM有较大概率无法获得所有列),则可以单击 后 选择“添加新字段”来手动增加,确保导入到目的端的数据完整。
● 如果是导入到数据仓库服务(DWS),则还需在目的字段中选择分布列,建议按如下顺序选 取分布列:
1. 有主键可以使用主键作为分布列。
2. 多个数据段联合做主键的场景,建议设置所有主键作为分布列。
3. 在没有主键的场景下,如果没有选择分布列,DWS会默认第一列作为分布列,可能会有 数据倾斜风险。
步骤7 CDM支持字段内容转换,如果需要可单击操作列下 ,进入转换器列表界面,再单 击“新建转换器”。
图4-36 新建转换器
CDM支持以下转换器:
● 脱敏:隐藏字符串中的关键数据。
例如要将“12345678910”转换为“123****8910”,则参数配置如下:
– “起始保留长度”为“3”。
– “结尾保留长度”为“4”。
– “替换字符”为“*”。
● 去前后空格:自动删除字符串前后的空值。
● 字符串反转:自动反转字符串,例如将“ABC”转换为“CBA”。
● 字符串替换:将选定的字符串替换。
● 表达式转换:使用JSP表达式语言(Expression Language)对当前字段或整行数 据进行转换,详细请参见字段转换。
● 去换行:将字段中的换行符(\n、\r、\r\n)删除。
步骤8 单击“下一步”配置任务参数,单击“显示高级属性”展开可选参数。
图4-37 任务参数
各参数说明如表4-44所示。
表4-44 任务配置参数
参数 说明 取值样例
作业失败重试 如果作业执行失败,可选择自动重试三次或者不 重试。
建议仅对文件类作业或启用了导入阶段表的数据 库作业配置自动重试,避免自动重试重复写入数 据导致数据不一致。
不重试
作业分组 选择作业的分组,默认分组为“DEFAULT”。在 CDM“作业管理”界面,支持作业分组显示、按 组批量启动作业、按分组导出作业等操作。
DEFAULT
是否定时执行 如果选择“是”,可以配置作业自动启动的时 间、重复周期和有效期,具体请参见配置定时任 务。
否
参数 说明 取值样例 抽取并发数 设置同时执行的抽取任务数。并发抽取数取值范
围为1-1000,若配置过大,则以队列的形式进行 排队。
CDM迁移作业的抽取并发量,与集群规格和表大 小有关。
● 按集群规格建议每1CUs(1CUs=1核4G)配 置为4。
● 表每行数据大小为1MB以下的可以多并发抽 取,超过1MB的建议单线程抽取数据。
说明迁移到文件时,CDM不支持多并发,此时应配置为单 进程抽取数据。
1
加载(写入)并
发数 加载(写入)时并发执行的Loader数量。
仅当HBase或Hive作为目的数据源时该参数才显 示。
3
是否写入脏数据 选择是否记录脏数据,默认不记录脏数据。 是 脏数据写入连接 当“是否写入脏数据”为“是”才显示该参数。
脏数据要写入的连接,目前只支持写入到OBS连 接。
obs_link
OBS桶 当“脏数据写入连接”为OBS类型的连接时,才 显示该参数。
写入脏数据的OBS桶的名称。
dirtydata
脏数据目录 “是否写入脏数据”选择为“是”时,该参数才 显示。
OBS上存储脏数据的目录,只有在配置了脏数据 目录的情况下才会记录脏数据。
用户可以进入脏数据目录,查看作业执行过程中 处理失败的数据或者被清洗过滤掉的数据,针对 该数据可以查看源数据中哪些数据不符合转换、
清洗规则。
/user/dirtydir
单个分片的最大 错误记录数
当“是否写入脏数据”为“是”才显示该参数。
单个map的错误记录超过设置的最大错误记录数 则任务自动结束,已经导入的数据不支持回退。
步骤9 单击“保存”,或者“保存并运行”回到作业管理界面,可查看作业状态。
说明
作业状态有New,Pending,Booting,Running,Failed,Succeeded。
其中“Pending”表示正在等待系统调度该作业,“Booting”表示正在分析待迁移的数据。
----结束