5.3 配置作业源端参数
5.3.8 配置关系数据库源端参数
作业中源连接为配置关系数据库连接,即从以下数据库导出数据时,源端作业参数如 表5-14所示。
● 数据仓库 DWS
● 云数据库 MySQL
● 云数据库 SQL Server
● 云数据库 PostgreSQL
● 达梦数据库 DM
● FusionInsight LibrA
● MySQL
● PostgreSQL
● Oracle
● IBM Db2
● Microsoft SQL Server
● SAP HANA
● MYCAT
● 分库
表5-14 关系数据库作为源端时的作业参数 参数类
型
参数名 说明 取值样例
基本参 数
使用SQL 语句
导出关系型数据库的数据时,您可以选择使用
自定义SQL语句导出。 否
SQL语句 “使用SQL语句”选择“是”时,您可以在这 里输入自定义的SQL语句,CDM将根据该语句 导出数据。
select id,name fromsqoop.user;
模式或表
空间 “使用SQL语句”选择“否”时,显示该参 数,表示待抽取数据的模式或表空间名称。单 击输入框后面的按钮可进入模式选择界面,用 户也可以直接输入模式或表空间名称。
如果选择界面没有待选择的模式或表空间,请 确认对应连接里的帐号是否有元数据查询的权 限。
说明该参数支持配置通配符(*),实现导出以某一前缀 开头或者以某一后缀结尾的所有数据库。例如:
● SCHEMA*表示导出所有以“SCHEMA”开头的 数据库。
● *SCHEMA表示导出所有以“SCHEMA”结尾的 数据库。
● *SCHEMA*表示数据库名称中只要有
“SCHEMA”字符串,就全部导出。
SCHEMA_E
参数类
● table*表示导出所有以“table”开头的表。
● *table表示导出所有以“table”结尾的表。
● *table*表示表名中只要有“table”字符串,就 全部导出。
table
高级属 性
抽取分区 字段
“使用SQL语句”选择“否”时,显示该参 数,表示抽取数据时使用该字段进行数据切 分,CDM依据此字段将作业分割为多个任务 并发执行。一般使用数据均匀分布的字段,例 如以自然增长的序号字段作为分区字段。
单击输入框后面的按钮可进入字段选择界面,
用户也可以直接输入抽取分区字段名。
id
Where子
句 “使用SQL语句”选择“否”时,显示该参 数,表示配置抽取范围的Where子句,不配置 时抽取整表。
该参数支持配置为时间宏变量,实现抽取指定 日期的数据,详细说明请参见关系数据库增量 迁移。
DS='$
{dateforma t(yyyy-MM-dd,-1,DAY)}'
分区字段
从Oracle导出数据时,支持从分区表的各个分 区并行抽取数据。启用该功能时,可以通过下 面的“表分区”参数指定具体的Oracle表分 区。
● 该功能不支持非分区表。
● 数据库用户需要具有系统视图 dba_tab_partitions和
dba_tab_subpartitions的SELECT权限。
否
参数类 型
参数名 说明 取值样例
表分区 输入需要迁移数据的Oracle表分区,多个分区 以&分隔,不填则迁移所有分区。
如果有子分区,以“分区.子分区”的格式填 写,例如“P2.SUBP1”。
P0&P1&P2.
SUBP1&P2.
SUBP3
作业拆分
● Oracle作为源端时,如果未配置“抽取分区字段”或者“按表分区抽取”这2个参数,CDM 自动使用ROWID进行数据分区。
● MySQL到DWS的场景下,MySQL Binlog方式增量迁移数据功能的使用限制如下:
1. 单个集群在当前版本中只支持一个MySQL Binlog方式的增量迁移任务。
2. 当前版本不支持一次性删除、更新万条记录。
3. 不支持整库迁移。
4. 不支持DDL操作。
5. 不支持事件(event)迁移。
6. 当选择增量迁移时,源MySQL数据库的“binlog_format”需要设置为“ROW”。
7. 当选择增量迁移时,增量迁移过程中如果源MySQL实例,出现因实例跨机迁移或跨机重 建等导致的binlog文件ID乱序,可能导致增量迁移数据丢失。
8. 当目的表存在主键时,如果重启CDM集群或全量迁移过程中产生增量数据,主键可能会 出现重复数据,导致迁移失败。
9. 如果目标数据库DWS存在重启行为,会导致迁移失败,需要重启CDM集群重新拉起迁移 作业。
● MySQL推荐配置如下:
#打开bin-log功能 log-bin=mysql-bin
#行模式binlog-format=ROW
#gtid模式,建议版本为5.6.10以上版本可用 gtid-mode=ON
enforce_gtid_consistency = ON
表5-15 分库作为源端时的作业参数
● SCHEMA*表示导出所有以“SCHEMA”开头的 数据库。
● *SCHEMA表示导出所有以“SCHEMA”结尾的 数据库。
● *SCHEMA*表示数据库名称中只要有
“SCHEMA”字符串,就全部导出。
SCHEMA_E
表名 表示要抽取的表名。单击输入框后面的按钮可
● table*表示导出所有以“table”开头的表。
● *table表示导出所有以“table”结尾的表。
● *table*表示表名中只要有“table”字符串,就 全部导出。
table
高级属
{dateforma t(yyyy-MM-dd,-1,DAY)}'
说明
● 选择源连接名称为分库连接对应的后端连接时,此作业即为普通的MySQL作业。
● 新建源端为分库连接的作业时,在字段映射阶段,可以在源字段新增样值为“$
{custom(host)}”样式的自定义字段,用于在多个数据库中的多张表迁移到同一张表后,查 看表的数据来源。支持的样值包括:
● ${custom(host)}
● ${custom(database)}
● ${custom(fromLinkName)}
● ${custom(schemaName)}
● ${custom(tableName)}