ETL增量抽取方式

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

ETL增量抽取方式

增量是以一个时间段为计量单位,记录该段时间内较以前增加的数据记录。

增量抽取是将该段时间内增长的记录查找出来。

增量抽取一般有三种抽取模式,用于捕获源系统新增的数据到系目标库中

1)、时间戳方式,要求源表中存在一个或多个字段(时间戳),其值随着新纪录的增加而不断增加,执行数据抽取时,程序通过时间戳对数据进行过滤,抽取结束后,程序记录时间戳信息。

2)、触发器方式。要求用户在源数据库中有创建触发器和临时表的权限,触发器捕获新增的数据到临时表中,执行抽取时,程序自动从临时表中读取数据。(这种方式现在觉得挺可取的,这样的话每次进行数据抽取的时候数据就变少了,但是这种方式要求每个表中都建有触发器,而且改动会比较的大,实现起来会比较的麻烦)

3)、全表对比方式,每次从源表中读取所有记录,然后逐条与目标表进行对比,有则插入,没有则放弃。(这种方法从原理上来讲是可行的,但是在实际的操作的过程中是十分的复杂的)

在我从事的ETL工作中,大部分都是采用时间戳方式进行增量抽取,如银行业务,VT新开户,使用时间戳方式,可以在固定时间内,组织人员进行数据抽取,进行整合后,加载到目标系统。

而触发器方式,虽然可以自动进行抽取,但是执行频率过多,影响效率!

第三种方式对于大数据量来说是非常不可取的,尤其是对于一些银行、电信行业,因为数据全量比较大,所以进行增量校对是比较耗时的,总起来说,个人趋向使用时间戳方式进行增量抽取,当然具体情况要看工作的使用环境

4)全表删除插入方式

全表删除插入方式是指每次抽取前先删除目标表数据,抽取时全新加载数据。该方式实际上将增量抽取等同于全量抽取。对于数据量不大,全量抽取的时间代价小于执行增量抽取的算法和条件代价时,可以采用该方式。

5)日志表方式

对于建立了业务系统的生产数据库,可以在数据库中创建业务日志表,当特定需要监控的业务数据发生变化时,由相应的业务系统程序模块来更新维护日志表内容。增量抽取时,通过读日志表数据决定加载哪些数据及如何加载。日志表的维护需要由业务系统程序用代码来完成。

6)系统日志分析方式

该方式通过分析数据库自身的日志来判断变化的数据。关系犁数据库系统都会将所有的DML操作存储在日志文件中,以实现数据库的备份和还原功能。ETL增晕抽取进程通过对数据库的日志进行分析,提取对相关源表在特定时间后发生的DML操作信息,就可以得知自上次抽取时刻以来该表的数据变化情况,从而指导增量抽取动作。有些数据库系统提供了访问日志的专用的程序包(例如ORACLE的LOGMINDER),使数据库日志的分析工作得到大大简化。

7)特定数据库方式(ORACLE)
以下介绍常见的针对特有数据库系统的增景抽取方式。
7.1 ORACLE改变数据捕获(CHANGEDDATACAPTURE,CDC)方式:ORACLECDC特性是在ORAELE9I数据库中引入的。CDC能够帮助识别从上次抽取之后发生变化的数据。利用CDC,在对源表进行INSERT、UPCLATE或DELETE等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中。这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给ETL抽取进程,作为增量抽取的依据。CDC方式对源表数据变化情况的捕获有两种方式:同步CDC和异步CDC。同步CDC使用源数据库触发器来捕获变更的数据。这种方式是实时的,没有任何延迟。当DML操作提交后,变更表中就产生了变更数据。异步CDC使用数据库重做日志(REDOLOG)文件,在源数据库发生变更以后,才进行数据捕获。
7.2 ORACLE闪回查询方式:ORACLE9I以上版本的数据库系统提供了闪回查询机制,允许用户查询过去某个时刻的数据库状态。这样,抽取进程可以将源数据库的(BI)当前状态和上次抽取时刻的状态进行对比,快速得出源表数据记录的变化情况。

8、比较和分析

可见,ETL在进行增量抽取操作时,有以上各种机制可以选择。现从兼容性、完备性、性能和侵入性3个方面对这些机制的优劣进行比较分析。数据抽取需要面对的源系统,并不一定都是关系型数据库系统。某个ETL过程需要从若干年前的遗留系统中抽取EXCEL或者CSV文本数据的情形是经常发牛的。这时,所有基于关系型数据库产品的增量机制都无法工作,时间戳方式和全表比对方式可能有一定的利用价值,在最坏的情况下,只有放弃增量抽取的思路,转而采用全表删除插入方式。完备性方面,时间戳方式不能捕获DELETE操作,需要结合其它方式一起使用。增量抽取的性能因素表现在两个方面,一是抽取进程本身的性能,二是对源系统性能的负面影响。触发器方式、日志表方式以及系统日志分析方式由于不需要在抽取过程中执行比对步骤,所以增量抽取的性能较佳。全表比对方式需要经过复杂的比对过程才能识别出更改的记录,抽取性能最差。在对源系统的性能影响方面,触发器方式由于是直接在源系统业务表上建立触发器,同时写临时表,对于频繁操作的业务系统可能会有一定的性能损失,尤其是当业务表上执行批量操作时,行级触发器将会对性能产生严重的影响;同步CDC方式内部采用触发器的方式实现,也同样存在性能影响的问题;全表比对方式和日志表方式对数据源系统数据库的性能没有任何影响,只是它们需要业务系统进行额外的运算和数据库操作,会有少许的时间损耗;时间戳方式、系统日志分析方式以及基于系统日志分析的方式(异步CDC和闪回查询)对数据库性能的影响也是非常小的。对数据源系统的侵入性是指业务系统是否要为实现增抽取机制做功能修改和额外操作,在这一点上,时间戳方式值得特别关注该方式除了要修改数据源系统表结构外,对于不支持时间戳字段自动更新的关系型数据库产品,还必须要修改业务系统的功能,让它在源表T执行每次操作时都要显式的更新表的时间戳字段,这在ETL实施过程中必须得到数据源系统高度的配合才能达到,并且在多数情况下这种要求在数据源系统看来是比较过分的,这也是时间戳方式无法得到广泛运用的主要原因。另外,触发器方式需要在源表上建立触发器,这种在某些场合中也遭到拒绝。还有一些需要建立临时表的方式,例如全表比对和日志表方式。可能因为开放给ETL进程的数据库权限的限制而无法实施。同样的情况也可能发生在基于系统日志分析的方式上,因为大多数的数据库产品只允许特定组的用户甚至只有DBA才能执行日志分析。闪回杏询在侵入性方面的影响是最小的。(BI)

各种数据增量抽取机制的优劣性综合分析如表L所示。

 

 

 

ETL增量抽取方案 一、.ETL体系结构     数据库--->抽取---> 转换--->加载--->目的数据源 二、ETL抽取方案    1).全量抽取         全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数据库抽取出来,并转换成自己的ETL工具可以识别的格式,全量抽取比较简单。全量抽取一般只在系统初始化时使用,全量一次后,就要每天采用增量抽取。    2).增量 阅读详情

相关推荐

kettle——(3)全量抽取增量抽取

kettle——(3)全量抽取增量抽取

The more fighting, the more brave 2万+

ETL数据增量抽取方案

ETL数据增量抽取方案,ETL数据增量抽取方案,ETL数据增量抽取方案

数据同步】什么是ETL增量抽取?

本文将介绍ETL增量抽取工作原理、应用场景以及实施策略,以及介绍如何利用现代数据集成工具进行高效实现。

oOBubbleX的博客 1887

ETL中的数据增量抽取机制研究

ETL中的数据增量抽取机制研究,数据仓库

ETL中的数据增量抽取机制

增量抽取数据仓库ETL(extraction,transformation,loading,数据抽取、转换和装载)实施过程中需要重点考虑的问题。在ETL过程中,增量更新的效率和可行性是决定ETL实施成败的关键问题之一,ETL中的增量更新机制比较复杂,采用何种机制往往取决于源数据系统的类型以及对增量更新性能的要求。 1 ETL概述 ETL包括数据抽取、转换、加载。①数据抽取:从源数据源系统

AnneQiQi的博客 6222

ETL数据抽取方案

ETL 过程中的主要环节就是数据抽取数据转换和加工、数据装载。为了实现这些功能,ETL 工具会进行一些功能上的扩充,例如工作流、调度引擎、规则引擎、脚本支持、统计信息等。 一、数据抽取 数据抽取是从数据源中抽取数据的过程。实际应用中,数据源较多采用的是关系数据库。 从数据库抽取数据一般有以下几种方式: 1.全量抽取 全量抽取类似于数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数 ...

清平乐的技术专栏 5632

ETL增量抽取方式总结

ETL增量抽取方式 (简单总结下) ETL增量抽取:     要实现增量抽取,关键是如何准确快速的捕获变化的数据。优秀的增量抽取机制要求ETL能够将业务系统中的变化数据按一定的频率准确地捕获到,同时不能对业务系统造成 太大的压力,影响现有业务。相对全量抽取而言,增量抽取的设计更复杂. 1、触发器方式     触发器方式是普遍采取的一种增量抽取机制。该方式是根据抽取要求,在要被抽取的...

xieyujun2006的专栏 534

ETL增量抽取方式

1、触发器方式触发器方式是普遍采取的一种增量抽取机制。该方式是根据抽取要求,在要被抽取的源表上建立插入、修改、删除3个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个增量日志表,ETL增量抽取则是从增量日志表中而不是直接在源表中抽取数据,同时增量日志表中抽取过的数据要及时被标记或删除。为了简单起见,增量日志表一般不存储增量数据的所有字段信息,而只是存储源表名称、更新的关键字...

YoungLoe的博客 1000

数据仓库系列之ETL中常见的增量抽取方式

为了实现数据仓库中的更加高效的数据处理,今天来探讨ETL系统中的增量抽取方式增量抽取数据仓库ETL(数据抽取(extraction)、转换(transformation)和装载(loading))实施过程中需要重点考虑的问题。 ETL抽取数据的过程中,增量抽取的效率和可行性是决定ETL实施成败的关键问题之一,做过数据建模的小伙伴都知道ETL中的增量更新机制比较复杂,采用何种机制往往取决于源数据系统的类型以及对增量更新性能的要求。 今天我们只重点对各种方法进行对比分析,从而总结各种机制的使用条件和优劣性

白鸽 3444

talend中文版安装文档和数据抽取ETL)实例

文件详尽地说明了talend 6.0版本的安装和ETL功能实例图文讲解。

自主智能体跨服务一致性校验方案设计与实践

在微服务与分布式系统架构中,跨服务一致性是保障业务正确性的核心挑战。传统分布式事务难以应对AI时代自主智能体动态、多步的决策链路。本文从一致性概念出发,解析可校验一致性原理,结合状态机、幂等机制与策略模式,设计一套决策审计与校验框架。该方案能有效识别重复执行、状态异常、入参不一致等问题,为智能体应用提供可追溯、可补偿的工程保障。通过Spring Boot示例代码,演示从记录上报到流水线校验的完整闭环,为企业落地AI应用提供参考。

weixin_34013044的博客 345

【转载】ETL增量抽取方式

1、触发器方式  触发器方式是普遍采取的一种增量抽取机制。该方式是根据抽取要求,在要被抽取的源表上建立插入、修改、删除3个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个增量日志表,ETL增量抽取则是从增量日志表中而不是直接在源表中抽取数据,同时增量日志表中抽取过的数据要及时被标记或删除。为了简单起见,增量日志表一般不存储增量数据的所有字段信息,而只是存储源表名称、更新的关...

micklf的博客 1220
上一篇: SSAS 添加商业智能
dekevin
博客等级 码龄15年 0粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值