文档首页> > 常见问题> 是否支持增量迁移?

是否支持增量迁移?

更新时间: 2018-11-07 09:03
CDM支持增量数据迁移。利用定时任务配置和时间宏变量函数,可支持以下场景的增量数据迁移:
  • 数据源为文件目录,目的端也为文件目录。
  • 数据源为带时间字段的文件。
  • 数据源为关系型数据库,数据库表名带有时间字段。
  • 数据源为关系型数据库,数据库表里有存储时间的列。

下面分别举例介绍这几种场景的关键配置。

数据源为文件目录,目的端也为文件目录

CDM支持从文件到文件的二进制传输,当源目录选定为一个目录的时候,CDM可以将该目录下的所有文件导入到目的端。

如果源端目录下的文件是不定期新增的,在创建任务时,关键配置如下:
  1. 目的端作业参数“重复文件处理方式”选择“跳过重复文件”,如图1所示。
    图1 跳过重复文件
  2. 配置作业任务为定时执行。

这样就可以定期把新增的文件导入到目的端目录,实现增量同步。

数据源为带时间字段的文件

如果源端文件名带有时间字段,例如 “2017-10-15 20:25:26”,这个时刻生成的文件为 “/opt/data/file_20171015202526.data”,则在创建作业时,关键配置如下:
  1. 源端作业配置中,选择“过滤类型”“通配符”,指定通过通配符过滤文件,如图2所示。
    图2 文件过滤
  2. “文件过滤器”输入*${dateformat(yyyyMMdd,-1,DAY)}*,这是CDM支持的日期宏变量格式,详见时间宏变量函数说明
  3. 配置定时执行作业,配置“重复周期”为1天。

这样每天就可以把昨天生成的文件都导入到目的端目录,实现增量同步。

数据源为关系型数据库,数据库表名带有时间字段

这里以数据源为Oracle的数据表为例,数据源会每天生成新的数据表,表名带有时间,例如2017年10月15日生成的表名为“table_20171015”,则在创建作业时,关键配置如下:

  1. 源端作业参数中,“表名”配置为table_${dateformat(yyyyMMdd)},如图3所示。
    图3 日期宏定义
  2. 配置定时执行作业,配置“重复周期”为1天。

这样就能每天把新生成的数据库表导入到目的端。

数据源为关系型数据库,数据库表里有存储时间的列

这里以MySQL数据库作为数据源为例,源表表名为Data,Data中有字段DS表示时间的列,如图4所示。

图4 Data数据表

则在创建作业时,关键配置如下:

  1. 源端作业参数中,“Where子句”配置为DS='${dateformat(yyyy-MM-dd,-1,DAY)}',如图5所示。
    图5 Where子句配置时间宏变量
  2. 配置定时执行作业,“重复周期”配置为1天,每天的0点执行定时任务。

这样就可以在每天0点,把前一天生成的数据,增量迁移到目的端。

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

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







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

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

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

跳转到云社区
点我,12·12惊喜等着你哦~