抽取常见的几种模式?
有数常见的抽取模式
目前有数抽取有4种模式。
分别是全量覆盖抽取,全量追加,增量和增量滚动。
全量覆盖
举个例子:假设第一天源头库有100条数据,第二天源头库新增10条,源头库即110条。那么第一天抽取:目标库100条,第二天抽取会删除昨天抽取的100条,然后重新抽取,此时目标库也是110条。
结论:全量覆盖抽取,抽取的时刻始终和源库数据保持一致。覆盖是一个先删除后拷贝的过程。
优点:理解简单,数据质量好,适用于小数据量的表。 缺点:大数据量的时候,占用资源,且抽取速度慢。
全量追加
举个例子:第一天源头库有100条数据,第二天源头库新增10条,源头库即110条。那么第一天抽取:目标库100条,第二天会抽取源头库的110条数据,但是不会删除昨天的数据。所以第二天目标库的数据是210条。
结论:全量追加抽取,数量会比原来数据多。追加是一个不会删除的过程。
优点:可以帮源头库存历史数据。 适用于源头表只存当天最新数据,有数的目标库可以把每天最新数据存储充当历史库。
缺点:对源头数据的质量要求极高,如果源头数据有问题,一旦抽取,无法修补。
增量
举个例子:有一张订单表,有个字段为订单创建时间。现在该表有5月1号到5月6号数据共100条数据。那么执行增量抽取,假设增量字段为订单创建时间。那么第一次抽取:100条数据全部拷贝到有数,此时目标库100条数据。 第二次抽取:源头增加了10条数据,订单创建日期为5月7号。 此时有数会判断,目标库最大日期是5月6号,源库最大日期是5月7号。 有数会把源头大于5月6号,小于等于5月7号的数据拷贝进来(即为增加的10条),此时目标库数据为110日条。 第三次抽取:源头增加了10条数据,其中5条数据为5月7号,5条数据为5月8号数据。那么此时抽取:目标库最大日期是5月7号,源库最大日期是5月8号。 有数会把源头大于5月7号,小于等于5月8号的数据拷贝进来(即为增加的5条)。 结论:增量抽取,必须要有增量键。抽取会根据增量键确定增量数据部分。
优点:对数据增量部分处理,占资源小,适用于历史数据稳定的大数据量表。 缺点:设置复杂,不能更新历史数据,只能手工重跑。
增量滚动
增量滚动可以理解成一种特殊的增量抽取。在执行抽取的时候,会先把数据删除特定的时间范围。然后执行增量抽取的比较逻辑。
结论:增量滚动抽取,必须要有增量键。抽取会先删除特定的时间范围,然后根据增量键确定增量数据部分。
优点:可以定期回溯 缺点:设置复杂,不能更新历史数据,只能手工重跑。