如何使用CDM完成数据库增量迁移

举报
Leef724 发表于 2020/05/14 17:44:02 2020/05/14
【摘要】 数据库增量迁移功能简介CDM支持对关系型数据库进行增量迁移,全量迁移完成之后,可以增量迁移指定字段值以上的数据(例如每次启动作业时只导出“date”值大于“2017-10-16 19:00:00”的数据),或者增量迁移指定时间段内的数据(例如每天晚上0点导出前一天新增的数据)。主要功能增量迁移大于指定字段值的数据适用场景:源端和目的端都为关系型数据库。关键配置:续传标记字段+5.6 配置定时...

数据库增量迁移

功能简介

CDM支持对关系型数据库进行增量迁移,全量迁移完成之后,可以增量迁移指定字段值以上的数据(例如每次启动作业时只导出“date”值大于“2017-10-16 19:00:00”的数据),或者增量迁移指定时间段内的数据(例如每天晚上0点导出前一天新增的数据)。

主要功能

  1. 增量迁移大于指定字段值的数据

  • 适用场景:源端和目的端都为关系型数据库。

  • 关键配置:续传标记字段+5.6 配置定时任务。

  • 前提条件:数据表中存在唯一并自动增长的数值型字段或者时间戳字段。

 2. 增量迁移指定时间段内的数据

  • 适用场景:5.2.7 配置关系数据库源端参数,目的端没有要求。

  • 关键配置:Where子句+5.6 配置定时任务。

  • 前提条件:数据表中有时间日期字段或时间戳字段。

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

  3. 续传标记字段

  • 参数位置:在5.1 新建表/文件迁移作业时,如果源端和目的端都为关系型数据库,那么在源端作业参数的高级属性下面可以看到“续传标记字段”参数。

  • 参数原理:通过“续传标记字段”参数指定一个字段(要求该字段的值唯一且自动增长,例如auto_increment int、timestamp、date类型的字段),CDM每次启动作业时,会去查询目的端数据库中已导入的表:

  • 如果表中不存在续传标记字段(作业第一次执行时),则CDM执行全量迁移。

  • 如果目的表存在续传标记字段且该字段有值,则CDM执行增量迁移,只迁移大于该字段值的数据。

    该参数结合CDM的5.6 配置定时任务,可以任意调度作业,实现关系型数据库的增量同步。

  • 配置样例:假设字段date记录每条数据生成的日期时间,参数配置如下:

    • 续传标记字段:配置为“date”。

    • 配置定时任务:重复周期可以配置为任意时间,则作业第一次执行全量迁移,以后再次启动时做增量同步。

imgclip_image021.jpg

  4. Where子句

  • 参数位置:在5.1 新建表/文件迁移作业时,如果源端为关系型数据库,那么在源端作业参数的高级属性下面可以看到“Where子句”参数。

  • 参数原理:通过“Where子句”参数可以配置一个SQL语句(例如:age > 18 and age <= 60),CDM只导出该SQL语句指定的数据;不配置时导出整表。Where子句支持配置时间宏变量完成增量同步,当数据表中有时间日期字段或时间戳字段时,配合定时任务,能够实现抽取指定日期的数据。

  • 配置样例:

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

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

      clip_image004.jpg

    • Where子句:配置为DS='${dateformat(yyyy-MM-dd,-1,DAY)}'img

      clip_image006.jpg

    • 配置定时任务:重复周期为1天,每天的凌晨0点自动执行作业。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。