更新时间:2022-08-17 GMT+08:00

关系数据库增量迁移

CDM支持对关系型数据库进行增量迁移,全量迁移完成之后,可以增量迁移指定时间段内的数据(例如每天晚上0点导出前一天新增的数据)。

  • 增量迁移指定时间段内的数据
    • 适用场景:源端为关系型数据库,目的端没有要求。
    • 关键配置:Where子句+定时执行作业。
    • 前提条件:数据表中有时间日期字段或时间戳字段。

关系数据库增量迁移方式,只对数据表追加写入,不会更新或删除已存在的记录。

Where子句

  • 参数位置:在创建表/文件迁移作业时,如果源端为关系型数据库,那么在源端作业参数的高级属性下面可以看到“Where子句”参数。
  • 参数原理:通过“Where子句”参数可以配置一个SQL语句(例如:age > 18 and age <= 60),CDM只导出该SQL语句指定的数据;不配置时导出整表。

    Where子句支持配置为时间宏变量,当数据表中有时间日期字段或时间戳字段时,配合定时执行作业,能够实现抽取指定日期的数据。

  • 配置样例:

    假设数据库表中存在表示时间的列DS,类型为“varchar(30)”,插入的时间格式类似于“2017-xx-xx”,如图1所示,参数配置如下:

    图1 表数据
    1. Where子句:配置为DS='${dateformat(yyyy-MM-dd,-1,DAY)}'
    2. 配置定时任务:重复周期为1天,每天的凌晨0点自动执行作业。

    这样就可以每天0点导出前一天产生的所有数据。Where子句支持配置多种时间宏变量,结合CDM定时任务的重复周期:分钟、小时、天、周、月,可以实现自动导出任意指定日期内的数据。