(本文档仅供参考)
问题说明
由于数据库数据量比较大,希望全量抽取后变成增量抽取,要怎么实现呢?
解决方案
下述方案是以旧的原生SQL数据集为例。
(1)原本的SQL,此时抽取为"全量抽取"(即一次性抽取所有数据),如下图:
(2)添加日期参数,默认值设置为空,具体设置如下:
(3)修改SQL为:select 字段 from table where {[日期>参数]} (注:此SQL写好后不能做任何修改,否则会影响时间戳的获取)
第一次增量抽取时,由于从知识库中找不到上次抽取记录的时间戳所以会进行全力抽取,此时参数设置为空,所以执行的是 select 字段 from table where 1=1,抽取业务库全部数据。
后续再进行增量抽取,因知识库中会记录上次抽取的最大日期,则会按照上次的最大日期进行增量更新。
例如:本次抽取日期最新是"2022-06-14","2022-06-14"则会存放在知识库中,下次抽取执行的SQL为:select 字段 from table where 字段>2022-06-14 ,从而实现增量抽取。
(4)抽取日志如下: