首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

莱牛教育:什么是大数据ETL?

什么是ETL?

 ETL(Extract Transform Load)它是将数据从源系统加载到数据仓库的过程,其中有三个步骤:数据抽取(extract)、数据的清洗转换(transform)、数据的加载(load)。

在设计ETL的时候我们也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS(Operational Data Store,操作型数据存储)中——这个过程也可以做一些数据的清洗和转换),在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。ETL三个部分中,花费时间最长的是“T”(Transform,清洗、转换)的部分,一般情况下这部分工作量是整个ETL的2/3。数据的加载一般在数据清洗完了之后直接写入DW(Data Warehousing,数据仓库)中去。

ETL三步解答:

一、 数据抽取(extract)

这一部分需要在调研阶段做大量的工作,首先要搞清楚数据是从哪几个系统中来,各个系统的数据库服务器运行什么DBMS,是否存在手工数据,手工数据量有多大,是否存在非结构化的数据等等,当收集完这些信息之后才可以进行数据抽取的设计。

1、对于与存放DW的数据库系统相同的数据源处理方法

这一类数据源在设计上比较容易。一般情况下,DBMS(SQLServer、Oracle)都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直接的链接关系就可以写Select 语句直接访问。

2、对于与DW数据库系统不同的数据源的处理方法

对于这一类数据源,一般情况下也可以通过ODBC的方式建立数据库链接——如SQL Server和Oracle之间。如果不能建立数据库链接,可以有两种方式完成,一种是通过工具将源数据导出成.txt或者是.xls文件,然后再将这些源系统文件导入到ODS中。另外一种方法是通过程序接口来完成。

3、增量更新的问题

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

二、数据的清洗转换(Cleaning、Transform)

一般情况下,数据仓库分为ODS、DW两部分。通常的做法是从系统到ODS做清洗,将脏数据和不完整数据过滤掉,在从ODS到DW的过程中转换,进行一些规则的计算和聚合。

1、数据清洗

数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给主管部门,确认是否过滤掉还是由单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。

2、 数据转换

数据转换的任务主要进行不一致数据转换、数据粒度转换,以及一些商务规则计算。

(1)不一致数据转换:这个过程是一个整合的过程,将不同业务系统的相同类型的数据统一

(2)数据粒度转换:系统一般存储非常明细的数据,而数据仓库中数据是用来分析的,不需要非常明细的数据。一般情况下,会将业务系统数据按照数据仓库粒度进行聚合。

(3) 商务规则计算:不同的企业有不同的规则、不同的数据指标,这些指标有的时候不是简单的加加减减就能完成,这个时候需要在ETL中将这些数据指标计算好了之后再存储在数据仓库中,以供分析使用。

三、数据的加载(load)

加载是将数据写入目标数据库的过程。在加载步骤中, 有必要确保正确执行加载并使用尽可能少的资源。

加载可以通过两种方式进行:

1. 刷新:数据仓库数据已完全重写。这意味着将替换较旧的文件。刷新通常与静态提取结合使用, 以最初填充数据仓库。

2. 更新:仅将应用于源信息的那些更改添加到数据仓库中。通常在不删除或修改现有数据的情况下执行更新。此方法与增量提取结合使用, 可以定期更新数据仓库。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200715A0HN9M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券