增量

ETL之增量抽取方式

时光怂恿深爱的人放手 提交于 2019-12-02 07:08:19
1、触发器方式 触发器方式是普遍采取的一种增量抽取机制。该方式是根据抽取要求,在要被抽取的源表上建立插入、修改、删除3个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个增量日志表,ETL的增量抽取则是从增量日志表中而不是直接在源表中抽取数据,同时增量日志表中抽取过的数据要及时被标记或删除。为了简单起见,增量日志表一般不存储增量数据的所有字段信息,而只是存储源表名称、更新的关键字值和更新操作类型(KNSEN、UPDATE或DELETE),ETL增量抽取进程首先根据源表名称和更新的关键字值,从源表中提取对应的完整记录,再根据更新操作类型,对目标表进行相应的处理。 例如,对于源表为ORACLE类型的数据库,采用触发器方式进行增量数据捕获的过程如下: 这样,对表T的所有DML操作就记录在增量日志表DML_LOG中,注意增量日志表中并没有完全记录增量数据本身,只是记录了增量数据的来源。进行增量ETL时,只需要根据增量日志表中的记录情况,反查源表得到真正的增量数据。 SQL代码 (1)创建增量日志表DML_LOG: CREATE TABLE DML_LOG( ID NUMBER PRIMARY KEY, //自增主键 TABLE NAME VARCHAR2(200). //源表名称 RECORD ID NUMBER, //源表增量记录的主键值 DML TYPE CH根(1