离线同步任务支持您通过配置类似的数据过滤功能来决定同步全量数据还是增量数据,配置过滤条件时,将只同步满足过滤条件的数据。同时,过滤条件可以结合调度参数使用,实现过滤条件随任务调度时间的动态变化,进而实现增量数据的同步。该内容将向您介绍如何配置增量数据同步任务。
使用说明
-
部分数据源暂无增量同步方案,例如HBase、OTSStream数据源等。具体数据源是否支持增量同步可以看具体的Reader插件文档。
-
每个插件实现增量同步的所配置的参数可能不同,具体参数配置可以参考对应的Reader插件文档,详情可参考:支持的数据源与读写插件。例如:
数据库类型
增量同步需配置的参数
支持的语法
where
说明向导模式配置时,需要配置的界面参数名为:数据过滤。
数据库语法
说明可与调度参数结合实现每日读取指定时间区间的数据。
query
说明向导模式配置时,需要配置的界面参数名为:检索查询条件。
基本与数据库一致
说明可与调度参数结合实现每日读取指定时间区间的数据。
Object
指定路径
说明与调度参数结合实现每日读取指定文件数据。
...
...
...
配置增量同步
数据集成离线同步任务中,可以使用调度参数来指定同步源表及目标表的数据路径以及数据范围,调度参数的配置方式与其他类型任务一致,没有特殊限制。
在同步任务运行时,任务中配置的占位符参数都会被替换为调度参数表达式所表达的实际值,然后再执行数据同步。
以同步MySQL数据为例:
-
当不配置数据过滤时,默认同步全量数据至目标表中。
-
当配置数据过滤时,将只同步满足过滤条件的数据至目标表中。
目标MaxCompute表分区名称以调度参数的方式指定,$bizdate表示业务日期,定时任务执行时,任务配置的分区表达式会替换为调度参数所表达的业务日期。调度参数表达式的详细配置说明请参考文档:配置并使用调度参数。以离线同步任务为例,需在三处配置 bizdate 参数以实现增量同步:在数据来源的数据过滤中填写 STR_TO_DATE('${bizdate}','%Y%m%d') <= gmt_modify_time AND gmt_modify_time < DATE_ADD(STR_TO_DATE('${bizdate}','%Y%m%d'), interval 1 day),按业务日期筛选当天变更数据;在数据去向的分区信息中填写 pt=${bizdate},将数据写入对应日期分区,并将清理规则设为写入前清理已有数据(Insert Overwrite);在右侧调度配置的参数中填写 bizdate=$bizdate,使调度系统在运行时自动将 ${bizdate} 替换为实际业务日期。配置增量数据同步时:
场景示例
-
同步历史数据:如果您需要将历史增量数据同步至目标表对应时间分区,您可以使用运维中心补数据功能。补数据功能使用详情请参见:补数据实例运维。在数据同步节点配置中,数据源选择 MySQL,数据去向选择 ODPS(MaxCompute),表名如
czd。数据过滤条件中通过${bizdate}控制增量范围(例如STR_TO_DATE('${bizdate}','%Y%m%d') <= gmt_modify_time),分区信息设为ds=${bizdate},清理规则选择写入前清理已有数据(Insert Overwrite)。在调度配置的参数区域定义bizdate=$bizdate,该调度参数会在补数据场景下根据业务日期自动替换为具体的日期值。执行补数据时,可设置多段业务日期范围(例如 2022-05-01 至 2022-05-31 和 2022-04-01 至 2022-04-30),勾选立即运行定时时间大于此刻的补数据实例,并选择业务日期正序执行。