背景
数据集成同步中的增量同步功能在现在很多用户日常的任务中占据的比例越来越多,意义很多时候比全量同步还大,但是很多用户在使用增量同时,遇到了不知道该如何配置参数的问题,面对纷繁复杂的数据库种类,每种类型都略有不同。下面就给您介绍一下使用不同数据库时可以使用的增量查询条件,干货满满,可以收藏保存。
数据源配置技巧
如图,具备增量同步的数据源都需要在数据过滤的地方填写对应的过滤语句,您可以通过数据表的时间列(比如gmt_modify、gmt_update)获取某一个时间范围内的增量数据(示例中为天增量${bizdate},您可以配合其他调度参数做小时增量),不同数据库的增量查询where条件略有区别。具体参考如下:
MySQL、DRDS、ADS、AnalyticDB for MySQL、PolarDB(MySQL引擎)、HybridDB for MySQL
STR_TO_DATE('${bizdate}', '%Y%m%d') <=
增量时间列 AND 增量时间列
< DATE_ADD(STR_TO_DATE('${bizdate}', '%Y%m%d'), interval 1 day)
Oracle、PostgreSQL
TO_DATE('${bizdate}', 'yyyymmdd') <=
增量时间列 AND 增量时间列
< TO_DATE('${bizdate}', 'yyyymmdd') + 1
SQL Server
CONVERT(datetime, '${bizdate}') <=
增量时间列 AND 增量时间列
< DATEADD(day, 1, CONVERT(datetime, '${bizdate}'))
调度配置关键步骤
配置好同步过滤参数后,对于调度也是要打好配合的,上面实例选择的按天进行过滤数据,那么同样的调度参数里我们也要设置为按天调度:
关键参数如下:
参数 | 含义 |
---|---|
生成实例方式 | 【T+1次日生成】:任务发布后的第二天才会有对应的实例开始执行 【发布后即时生成】:如果任务发布的当前时间在允许调度执行的时间之前,那么立刻就生成实例,在调度时间到达后实例就会执行,否则不生成实例。 |
调度周期 | 设置按照“分、小时、日、周、月”这样的周期循环单位 |
具体时间 | 在设置完调度周期之后,设置每一个周期里具体调度的时间点 |
最后发布或者提交之后,在运维就可以看到实例了,然后每个循环周期都会对应的生成,并执行增量同步任务。
总结
一句话,在数据集成中的将过滤的增量数据设置,同调度的周期保持一致,即可以保证不遗漏任何增量,按期所有数据妥妥入库,您Get到了吗?
DataWorks百问百答历史记录 请点击这里查看>>
更多DataWorks技术和产品信息,欢迎加入【DataWorks钉钉交流群】