登录
首页大数据时代你想知道的关于ETL的基础知识,都在这里了
你想知道的关于ETL的基础知识,都在这里了
2020-07-29
收藏

想必大家在学习数据分析的时候,一定接触过ETL,那么关于ETL大家了解到什么程度呢?跟小编一起来复盘一下吧!

一、ETL概念

ETL全称是:Extract-Transform-Load,是将业务系统的数据经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程。其目的是将企业中那些分散、零乱、标准不统一的数据整合到一起,从而为企业的决策提供分析依据。 ETL为BI项目一个非常重要的环节, 往往在BI项目中,ETL会占用我们整个项目至少1/3的时间,可以说ETL设计的好坏会直接关系到BI项目的成败。

二、ETL关键技术

1.数据的抽取(Extract)

首先需要确定数据源,也就是要弄明白数据是从哪几个业务系统中来,每个业务系统的数据库服务器运行什么DBMS;是否有手工数据存在,存在的话,数据量是多少;是否有非结构化的数据存在等。我们需要定义数据接口,对每一个源文件及系统中的每一个字段进行详细说明。之后确定数据抽取的方法,例如:需要确定是主动抽取还是由源系统推送?是按每日抽取还是每月抽取?以及是增量抽取还是全量抽取?

2.数据的清洗转换(Transform)

(1)数据清洗(Cleaning)

数据清洗的主要任务是清洗掉那些不符合要求的数据,将清洗的结果交给业务主管部门,并确认是直接清洗掉,还是由业务单位修正之后再次抽取。

不符合要求的数据主要包括:不完整的数据、错误的数据、重复的数据这三类。

(2)数据转换

数据转换一般包括:

空值处理,也就是捕获字段空值,并将其加载或替换为其他含义数据,或者数据分流问题库

数据标准,即统一元数据、统一标准字段、统一字段类型定义

数据拆分,根据实际业务需求对数据进行拆分,例如对身份证号拆分,拆分行政区划、出生日期、性别等

数据验证,时间规则、业务规则、自定义规则

数据替换,替换由于业务因素而导致的那些无效数据、缺失数据

数据关联,与其他数据进行关联,以保障数据完整性

3.数据加载(Load)

将清洗和转换后的数据装载到对应的表库中是ETL过程的最后步骤。采用什么样的方法装载数据,关键取决于所执行操作的类型和需要装载的数据量。当对应库为关系数据库时,通常有两种装载方式:

(1)直接使用SQL语句进行insert、update、delete操作。

(2)采用批量装载方法,例如bcp、bulk、关系数据库特有的批量装载工具或者api。

三、ETL日志、警告发送

1、 ETL日志

ETL日志主要分为三类。

(1)执行过程日志::在ETL执行过程中每一步的记录,记录每一次运行过程中各步骤的起始时间,影响的数据量,以流水账形式记录。

(2)错误日志::某个模块出错时的日志,会记录出错的时间、出错的模块以及其它相关出错的信息等。

(3)总体日志:只是记录ETL开始和结束时间以及否成功等信息。

如果我们使用ETL工具,那些ETL工具会也自动产生日志,这些日志也可以看做ETL日志的一部分。

记录日志的有助于我们随时知道ETL运行情况,一旦出现错误,我们可以知道是哪里出错。

2、 警告发送

ETL出现错误,不仅会形成ETL错误日志,并且会向系统管理员发送警告。警告发送的方式有很多种,通常会采用向系统管理员发送邮件的形式,并且会附上出错的相关信息,方便管理员排查错误。

ETL是BI项目的关键环节,也是一个长期的过程,需要不断的发现问题,并解决问题,才能让ETL运行效率更高,为BI项目后期开发提供更加准确与高效的分析数据。

四、ETL 模式

ETL主要有四种实现模式,分别为:触发器模式、增量字段、全量同步、日志比对

五、ETL 工具

我们在选择ETL工具时,需要考虑从工具对平台和数据源的支持程度,集成性和开放性、抽取和装载的性能、数据转换和加工的性能,以及侵入性的高低,是否管理和调度功能等方面综合考虑。

数据分析咨询请扫描二维码

客服在线
立即咨询