时代的数据魔法:ETL
DT时代,如何高效地把数据转换为信息、知识,已经成为企业亟待解决的关键问题,ETL作为数据分析、数据挖掘的基础,已成为提高核心竞争力的重要技术手段。
什么是ETL
如果把数据仓库的模型设计比作是一座大厦的设计蓝图,那么数据就是构成大厦的一砖一瓦,而ETL就是建设大厦的过程。
时代的数据魔法:ETL
图:典型BI系统结构图,来源于网络
根据典型BI系统结构图我们可以看出,ETL(Extraction-Transformation-Loading)是数据仓库获取高质量数据的关键环节,也是BI(商业智能)项目最重要的一个环节,可以说,ETL设计的好坏直接关系到BI项目的成败。(还不了解商业智能的小伙伴可以看下企通查的历史文章:从小透明到决策层,商业智能“逆袭”了?)
ETL是一个长期的过程,通过对分散在各业务系统中相互关联的分布式异构数据进行提取(Extract)、清洗、转换(Transform)和加载(Load),使这些数据成为BI系统需要的有用数据。
ETL的流程
- 数据提取(Data Extract)
数据提取指的是从不同的网络、操作平台、应用、数据库和数据格式中抽取数据的过程。
在这个过程中,首先需要根据实际业务需求进行抽取字段的确定,形成一张公共需求的清单,同时清单中的需求字段也应当和数据库中的字段形成一一映射关系,这样通过数据抽取得到的数据都能够整齐划一,为后续数据转换和加载提供基础。
具体实现过程中,将会涉及到如何解决从不同类型的数据库(如Oracle、MySQL、DB2)、不同类型的文件系统(如Linux、Windows)以何种方式(如数据库抽取、文件传输、流式)、何种频率(分钟、小时、天、周、月等)获取数据的问题。
- 数据转换(Data Transformation)
数据转换是指将数据从一种表现形式变为另一种表现形式的过程,即对数据进行整合、拆分和变换。
数据整合是指通过多表关联,将不同类型数据之间可能存在潜在关联关系的多条数据进行合并,通过数据的整合,丰富数据维度,有利于发现更多有价值的信息。
数据拆分是指按一定规则对数据进行拆分,将一条数据拆分为多条。
数据变换是指对数据进行行列转换、排序、修改序号、去除重复记录变换操作。
数据转换一般包括两类工作:
一种是对数据名称及格式进行统一,另一种则是数据仓库中可能会有源数据库中不存在的数据,因此需要进行字段的组合、分割或计算。
数据转换其实还包含了数据清洗的工作,根据业务规则对异常数据进行清洗,将不完整、错误或重复的数据进行相应处理,以保证后续分析结果的准确性。
- 数据加载(Data Loading)
数据加载的主要任务是将清洗过后的干净的数据集按物理数据模型定义的表结构装入目标数据仓库的数据表中,并允许人工干预,以及提供强大的错误报告、系统日志、数据备份与恢复功能。
数据加载的方式主要有:增量加载(时间戳方式、日志表方式、全表比对方式)、全量加载(全表删除再插入方式)。整个操作过程中往往要跨网络、跨操作平台。实际工作中,数据加载需要结合使用的数据库系统,确定最优的数据加载方案,节约CPU、硬盘IO和网络传输资源。
主流的ETL工具
ETL的实现方法有三种:
1)借助ETL工具
2)SQL方法实现
3)ETL工具与SQL相结合
ETL工具能够降低难度,但缺少灵活性,相对地SQL灵活但编码复杂,因此一般实际工作中会把两者进行结合。
SQL想必大家都比较熟悉,此处便不再赘述,下面为大家简单罗列几款常用的ETL工具。
ETL工具从厂商来看可以分为两种,一种是数据库厂商自带的ETL工具,另一种则是第三方工具提供商。
1.ODI
ODI,即Oracle Data Integrator,主要定位于在ETL和数据集成的场景里使用,ODI能够检测事件,一个事件可以触发ODI的一个接口流程,从而完成近乎实时的数据集成。
2.Sqoop
Sqoop,即SQL-to-Hadoop,主要用于在Hadoop与关系型数据库之间进行数据转移,可以将一个关系型数据库(MySQL ,Oracle等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库中。
3.DataX
DataX 是一款被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。
4.Kettle
Kettle是一款国外免费开源的、可视化的、功能强大的ETL工具,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
ETL 技术可以使得商业分析速度加快,使公司的业务获得决策更多的决策时间。市面上大多BI工具都不含ETL功能,在进行项目分析时,通常会用到BI、ETL两个工具,成本高、花费时间长。而奥德塔大数据应用分析平台在易用性方面进行了大量的探索,推出ETL可视化功能,旨在降低工具操作的复杂度,提供人人都是数据分析师的自助式数据探索工具,让没有数据分析专业背景的业务人员在拖曳点击之间,也可快速发现数据中蕴藏的价值,充分释放企业的数据分析活力。
时代的数据魔法:ETL