动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

ETL的三大功能详解

08-10 17:43 547浏览
举报 T字号
  • 大字
  • 中字
  • 小字

随着现代企业信息化的发展,各业务线、产品线、部门都会承建各种信息化系统方便开展自己的业务。随着信息化建设的不断深入,由于业务系统之间各自为政、相互独立造成的数据孤岛”现象尤为普遍,业务不集成、流程不互通、数据不共享。这给企业进行数据的分析利用、报表开发、分析挖掘等带来了巨大困难。在此危急存亡之时,ETL应用而生,ETL的三大功能作为其核心机制完美地解决了上述的问题。

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI(商业智能)项目重要的一个环节。

一、 数据抽取

数据抽取就是从源系统中获取业务数据的过程。数据的抽取需要充分满足商业智能系统的决策分析需要,为了保证不影响系统的性能,数据抽取时需要考虑很多因素,包括抽取方式、抽取时间和抽取周期等内容。

例如,抽取方式包括增量抽取、全量抽取。抽取时间应该尽量在系统使用的低谷时段,如夜间。抽取的周期是根据业务的需求制定的,如按小时抽取,或者按天、月、季度、年等抽取。在数据抽取之前,需要确定业务系统的数据情况,了解数据量的大小,以及业务系统中每张表的数据结构、字段含义、表之间的关系等信息,当收集完这些信息后,才能进行数据抽取的设计开发等工作。

对于数据量大的系统,必须考虑增量抽取。一般情况下,业务系统会记录业务发生的时间,我们可以用来做增量的标志,每次抽取之前首先判断ODS中记录最大的时间,然后根据这个时间去业务系统取大于这个时间所有的记录。利用业务系统的时间戳,一般情况下,业务系统没有或者部分有时间戳。

二、数据清洗

在一般情况下,数据清洗的目的就是选择出有缺陷的数据,然后再将它们正确化和规范化,从而达到用户要求的数据质量标准。其中数据「缺陷」可能包括以下几种情况:数值重复、数据缺失、数据错误、数据范围混淆、存在「脏」数据和数据不一致等几种情况其中数值重复是指标准不唯一,很多数值都代表着相同的含义。数据范围混淆是指相同的数值会应用到不同的场合中,代表着不同的含义。

数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。对于是否过滤,是否修正一般要求客户确认,对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发的初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快地修正错误,同时也可以做为将来验证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉,对于每个过滤规则认真进行验证,并要用户确认。

  • 数据加载

数据的加载一般在数据清洗完了之后直接写入DW(Data Warehousing,数据仓库)中去。

ETL 增量加载在方式上主要包括:

1.系统日志分析方式

2.触发器方式

3.时间戳方式

4.全表比对方式

5.源系统增量(delta)数据直接或者转换后加载

现在有很多成熟的工具提供ETL功能,且不说他们的好坏。从应用角度来说,ETL的过程其实不是非常复杂,这些工具给数据仓库工程带来和很大的便利性,特别是开发的便利和维护的便利。但另一方面,开发人员容易迷失在这些工具中,不去探求ETL的本质,真的就只是在使用工具而已。大家都知道“理论与实践相结合”,如果在一个领域有所超越,必须要在理论水平上达到一定的高度,只有两者兼得才能推动ETL的技术革新和自身素质的发展!

 

 

 

0人推荐
共同学习,写下你的评论
0条评论
熊熊爱吃可爱多
程序员熊熊爱吃可爱多

6篇文章贡献27254字

作者相关文章更多>

推荐相关文章更多>

MySQL开发规范

达芬奇09-04 11:38

必须掌握的30种SQL语句优化

不写代码你养我啊08-23 11:30

ES(Elasticsearch)支持PB级全文搜索引擎入门教程

HelloWorld09-29 17:28

Java面试中的hadoop面试题及答案整理

兔子06-15 17:15

数据库分类之速成篇

呵呵呀06-17 18:54

发评论

举报

0/150

取消