文档首页 > > 用户指南> 创建作业> 配置作业源端参数>

配置关系数据库源端参数

配置关系数据库源端参数

分享
更新时间:2021/03/12 GMT+08:00

作业中源连接为配置关系数据库连接,即从以下数据库导出数据时,源端作业参数如表1所示。

  • 数据仓库 DWS
  • 云数据库 MySQL
  • 云数据库 SQL Server
  • 云数据库 PostgreSQL
  • 达梦数据库 DM
  • FusionInsight LibrA
  • Derecho(GaussDB)
  • MySQL
  • PostgreSQL
  • Oracle
  • IBM Db2
  • Microsoft SQL Server
表1 关系数据库作为源端时的作业参数

参数类型

参数名

说明

取值样例

基本参数

使用SQL语句

导出关系型数据库的数据时,您可以选择使用自定义SQL语句导出。

SQL语句

“使用SQL语句”选择“是”时,您可以在这里输入自定义的SQL语句,CDM将根据该语句导出数据。

select id,name from sqoop.user;

模式或表空间

“使用SQL语句”选择“否”时,显示该参数,表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,用户也可以直接输入模式或表空间名称。

如果选择界面没有待选择的模式或表空间,请确认对应连接里的帐号是否有元数据查询的权限。

说明:
该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如:
  • SCHEMA*表示导出所有以“SCHEMA”开头的数据库。
  • *SCHEMA表示导出所有以“SCHEMA”结尾的数据库。
  • *SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。

SCHEMA_E

表名

“使用SQL语句”选择“否”时,显示该参数,表示要抽取的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。

如果选择界面没有待选择的表,请确认表是否已经创建,或者对应连接里的帐号是否有元数据查询的权限。

该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步

说明:
表名支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有表(要求表中的字段个数和类型都一样)。例如
  • table*表示导出所有以“table”开头的表。
  • *table表示导出所有以“table”结尾的表。
  • *table*表示表名中只要有“table”字符串,就全部导出。

table

高级属性

抽取分区字段

“使用SQL语句”选择“否”时,显示该参数,表示抽取数据时使用该字段进行数据切分,CDM依据此字段将作业分割为多个任务并发执行。一般使用数据均匀分布的字段,例如以自然增长的序号字段作为分区字段。

单击输入框后面的按钮可进入字段选择界面,用户也可以直接输入抽取分区字段名。

id

Where子句

“使用SQL语句”选择“否”时,显示该参数,表示配置抽取范围的Where子句,不配置时抽取整表。

该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见Where子句

DS='${dateformat(yyyy-MM-dd,-1,DAY)}'

分区字段是否允许空值

是否允许分区字段包含空值。

按表分区抽取

从Oracle导出数据时,支持从分区表的各个分区并行抽取数据。启用该功能时,可以通过下面的“表分区”参数指定具体的Oracle表分区。
  • 该功能不支持非分区表。
  • 数据库用户需要具有系统视图dba_tab_partitionsdba_tab_subpartitionsSELECT权限。

表分区

输入需要迁移数据的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
表2 分库作为源端时的作业参数

参数类型

参数名

说明

取值样例

基本参数

模式或表空间

表示待抽取数据的模式或表空间名称。单击输入框后面的按钮可进入模式选择界面,分库连接时此处默认展示对应第一个后端连接的表空间。用户也可以直接输入模式或表空间名称。

如果选择界面没有待选择的模式或表空间,请确认对应连接里的帐号是否有元数据查询的权限。

说明:
该参数支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有数据库。例如:
  • SCHEMA*表示导出所有以“SCHEMA”开头的数据库。
  • *SCHEMA表示导出所有以“SCHEMA”结尾的数据库。
  • *SCHEMA*表示数据库名称中只要有“SCHEMA”字符串,就全部导出。

SCHEMA_E

表名

表示要抽取的表名。单击输入框后面的按钮可进入表的选择界面,用户也可以直接输入表名称。

如果选择界面没有待选择的表,请确认表是否已经创建,或者对应连接里的帐号是否有元数据查询的权限。

该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据,详细说明请参见使用时间宏变量完成增量同步

说明:
表名支持配置通配符(*),实现导出以某一前缀开头或者以某一后缀结尾的所有表(要求表中的字段个数和类型都一样)。例如
  • table*表示导出所有以“table”开头的表。
  • *table表示导出所有以“table”结尾的表。
  • *table*表示表名中只要有“table”字符串,就全部导出。

table

高级属性

Where子句

表示配置抽取范围的Where子句,不配置时抽取整表。

该参数支持配置为时间宏变量,实现抽取指定日期的数据,详细说明请参见Where子句

DS='${dateformat(yyyy-MM-dd,-1,DAY)}'

  • 选择源连接名称为分库连接对应的后端连接时,此作业即为普通的MySQL作业。
  • 新建源端为分库连接的作业时,在字段映射阶段,可以在源字段新增样值为“${custom(host)}”样式的自定义字段,用于在多个数据库中的多张表迁移到同一张表后,查看表的数据来源。支持的样值包括:
    • ${custom(host)}
    • ${custom(database)}
    • ${custom(fromLinkName)}
    • ${custom(schemaName)}
    • ${custom(tableName)}
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区论坛频道来与我们联系探讨

智能客服提问云社区提问