《bi项目笔记》增量etl数据抽取的策略及方法

大叔聚 大叔聚     2022-08-08     647

关键词:

原文:《BI项目笔记》增量ETL数据抽取的策略及方法

增量抽取 增量抽取只抽取自上次抽取以来数据库中要抽取的表中新增或修改的数据。在ETL使用过程中。增量抽取较全量抽取应用更广。如何捕获变化的数据是增量抽取的关键。对捕获方法一般有两点要求:准确性,能够将业务系统中的变化数据按一定的频率准确地捕获到;性能,不能对业务系统造成太大的压力,影响现有业务。目前增量数据抽取中常用的捕获变化数据的方法有: a.触发器:在要抽取的表上建立需要的触发器,一般要建立插入、修改、删除三个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个临时表,抽取线程从临时表中抽取数据,临时表中抽取过的数据被标记或删除。触发器方式的优点是数据抽取的性能较高,缺点是要求业务表建立触发器,对业务系统有一定的影响。

b.时间戳:它是一种基于快照比较的变化数据捕获方式,在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据。有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值。有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手工更新时间戳字段。同触发器方式一样,时间戳方式的性能也比较好,数据抽取相对清楚简单,但对业务系统也有很大的倾入性(加入额外的时间戳字段),特别是对不支持时间戳的自动更新的数据库,还要求业务系统进行额外的更新时间戳操作。另外,无法捕获对时间戳以前数据的delete和update操作,在数据准确性上受到了一定的限制。

c.全表比对:典型的全表比对的方式是采用MD5校验码。ETL工具事先为要抽取的表建立一个结构类似的MD5临时表,该临时表记录源表主键以及根据所有字段的数据计算出来的MD5校验码。每次进行数据抽取时,对源表和MD5临时表进行MD5校验码的比对,从而决定源表中的数据是新增、修改还是删除,同时更新MD5校验码。MD5方式的优点是对源系统的倾入性较小(仅需要建立一个MD5临时表),但缺点也是显而易见的,与触发器和时间戳方式中的主动通知不同,MD5方式是被动的进行全表数据的比对,性能较差。当表中没有主键或唯一列且含有重复记录时,MD5方式的准确性较差。

d.日志对比:通过分析数据库自身的日志来判断变化的数据。Oracle的改变数据捕获(CDC,ChangedDataCapture)技术是这方面的代表。CDC特性是在Oracle9i数据库中引入的。CDC能够帮助你识别从上次抽取之后发生变化的数据。利用CDC,在对源表进行insert、update或delete等操作的同时就可以提取数据,并且变化的数据被保存在数据库的变化表中。这样就可以捕获发生变化的数据,然后利用数据库视图以一种可控的方式提供给目标系统。CDC体系结构基于发布者/订阅者模型。发布者捕捉变化数据并提供给订阅者。订阅者使用从发布者那里获得的变化数据。通常,CDC系统拥有一个发布者和多个订阅者。发布者首先需要识别捕获变化数据所需的源表。然后,它捕捉变化的数据并将其保存在特别创建的变化表中。它还使订阅者能够控制对变化数据的访问。订阅者需要清楚自己感兴趣的是哪些变化数据。一个订阅者可能不会对发布者发布的所有数据都感兴趣。订阅者需要创建一个订阅者视图来访问经发布者授权可以访问的变化数据。CDC分为同步模式和异步模式,同步模式实时的捕获变化数据并存储到变化表中,发布者与订阅都位于同一数据库中。异步模式则是基于Oracle的流复制技术。

综上所述:本BI项目中采取时间戳方式.

etl工具kettle怎么进行增量数据抽取:通过标志位

在平时的操作过程中可能大家需要经常进行增量的数据抽取,方法有很多种,接下来几天讲给大家介绍几种我本人经常使用的几种方式;首先给大家介绍我最喜欢的一种,就是通过标志位;操纵方法如下,在源表中增加一个标识... 查看详情

etl流程概述及常用实现方法

...录(?)[-]1抽取作业1手工开发抽取作业时候的常用方法11当数据源和DW为同一类数据库时12当数据源和ODS为不同类型数据库时2更新数据的时间和数量的问题21实时抽取数据22批量抽取数据221常用实现222根据下载时候对数据的筛选方式 查看详情

转载etl浅谈

...据整合到一起,为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关接到BI项目的成败。         ETL的设计分 查看详情

搞懂数据仓库:常用etl工具方法

...3.1sqoop3.2DataX3.3 Kettle3.4 canal3.5StreamSets四、ETL加载策略4.1增量4.2全量4.3流式小编有话一、什么是ETL?ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取 查看详情

kettle6.1按时间增量抽取数据

1.设计一个增量配置表ETL_INCREMENTAL,用于配置表的增量时间等数据2.增量JOB全图如下:2.1获取增量时间变量,并设置增量变量2.2表的增量转换,在表中引用2.1的增量变量2.3完成增量后,修改配置表ETL_INCREMENTAL 查看详情

大数据相关技术说明

...据集市中,成为联机分析处理、数据挖掘的基础。ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时 查看详情

etl和ssisssasssrs是个啥关系?

...是只使用其一一个工具?ssisssasSSRS是BI的三个部分。ETL是数据抽取、清洗、转换、装载的过程,ETL是用SSIS来实现的,也就是说SSIS是ETL工具。而SSAS是建立多维数据集,SSRS是建立前台报表。微软SQLSERVER2012BI体系。SSIS,数据抽取服... 查看详情

bi工程师,数据仓库工程师,etl工程师有啥区别

bi工程师,数据仓库工程师,etl工程师有什么区别?职责分别是?BI工程师、数据仓库工程师、ETL工程师都属于大数据工程技术人员,三种的主要区别如下:一、工作内容不同1、BI工程师:主要是报表开发,负责开发工作。2、数据... 查看详情

etl讲解

...定的数据库中抽取。或者还可以借助工具实现。  4、增量更新的问题  对于数据量大的系统,必须考虑增量抽取。一般情况下,业务系统会记录业务发生的时间,我们可以用来做增量的标志,每次抽取之前首先判断ODS中记录... 查看详情

etl常用的三种工具介绍及对比datastage,informatica和kettle

...据整合到一起,为企业的决策提供分析依据。ETL是BI项目重要的一个环节,其设计的好坏影响生成数据的质量,直接关系到BI项目的成败。二、为什么要用ETL工具?在数据处理的时候,我们有时会遇到这些问题&... 查看详情

etl是啥

...应手。我看大部分软件程序开发人员出身的,碰到数据类项目会比较喜欢用程序控制跑批,这是程序思维的自然延续。纯BI开发人员大部分自然就选择成熟的ETL工具来开发,当然也有一上来就写程序脚本的 查看详情

数据etl是指啥

...应手。我看大部分软件程序开发人员出身的,碰到数据类项目会比较喜欢用程序控制跑批,这是程序思维的自然延续。纯BI开发人员大部分自然就选择成熟的ETL工具来开发,当然也有一上来就写程序脚本的 查看详情

大数据用户画像实战之业务数据调研及etl(代码片段)

整个用户画像(UserProfile)项目中,数据、业务及技术流程图如下所示:其中数据源存储在业务系统数据库:MySQL数据库中,采用SQOOP全量/增量将数据抽取到HDFS(Hive表中),通过转换为HFile文件... 查看详情

etl简介

...uo;转换”、“装载”,但我们日常往往简称其为数据抽取。ETL是BI/DW(商务智能/数据仓库)的核心和灵魂,按照统一的规则集成 查看详情

etl到底是什么?

...、数据挖掘提供决策支持的数据。简单来说,对于BI项目中的ETL来说,ETL是将业务系统的数据,经边抽取、数据转换之后加载到数据仓库的过程。2、ETL设计的三部分1)数据抽取& 查看详情

数仓第5篇:『数据魔法』etl

...5.StreamSets二、ETL之技术栈2.1工具2.2语言三、ETL加载策略01.增量02.全量03.拉链四、结束语导读:ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(t 查看详情

数仓第5篇:『数据魔法』etl

...5.StreamSets二、ETL之技术栈2.1工具2.2语言三、ETL加载策略01.增量02.全量03.拉链四、结束语导读:ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(t 查看详情

bi,数据仓库,etl,大数据开发工程师有啥区别

...视化报表和底层业务系统数据源之间的这一层,在整个BI项目解决方案中起到的是一个承上启下的作用。所以,BI在前端可视化分析层面要玩出各类精彩的动作,没有数据仓库这个核心力量的支撑是很难做到的。那大家也会问到... 查看详情