ETL背景
在现代的企业里,每个部门都是一个独立的业务条线,由于各部门各自为政,信息的不流通,就形成了“信息孤岛”的尴尬局面,给企业的数据挖掘、报表开发等带来非常大的困难。数据仓库概念的诞生就是为了解决这个问题的,通过一定的技术把各部门的数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后再进入数据仓库,为后续的DSS(决策支持系统)和BI(商务智能)等深度开发奠定基础。而把数据源进行加工与集成的这个过程,就是ETL。
ETL概念
ETL的含义是将业务系统的数据经过抽取(Extract)、清洗转换(Transform)之后加载(Load)到数据仓库的过程,目的是为了将企业中零散的、不标准的、不统一的数据整合起来,并输出标准和统一的数据源,为企业决策提供数据依据。实现ETL的方法主要有两种,一种是通过编程语言去实现,但是门槛较高,一般人不易掌握。另一种是借助ETL工具去实现,这种方式比较灵活,而且图形化的界面操作起来比较简单,现在大部分有数据仓库需求的企业都是采用这种方式。
下面以智分析的自助ETL功能为案例模型,对数据抽取、数据转换、数据加载进行详细的介绍。
数据抽取
1、 确定数据源:文本数据源,kafka数据源,关系数据源,示例数据源,数据集
2、 定义数据接口:对每个源文件及系统的每个字段进行详细说明
3、 确定数据抽取的办法:是主动抽取还是由源系统推送;是增量抽取还是全量抽取;是按照每日抽取还是按照每月抽取。
数据转换
• 数据采样:通过随机、加权、分层、下采样四种方式对数据源进行抽取
• 数据拆分:将原本样本集按照训练集和测试集的方式拆分成2个子集
• 数据过滤:按照用户需求,通过写SQL语句,对数据按照过滤表达式进行筛选
• 数据合并:将两张表按行或列的方式进行合并
• 数据关联:通过内连接、左右连接、全连接的方式对两个表格进行关联
• 空值处理、去除重复值、聚合…
数据加载
将清洗和转换好的数据直接加载到数据库对应表中,如果是全量方式则采用覆盖的方式,如果是增量则选择追加的方式。
ETL工具选择
1、 智分析是由smartbi公司开发的云端SaaS平台,包含了强大的ETL功能,以工作流的形式实现为库表提取数据模型的语义,通过易于操作的可视化工具,将数据加工成具备语义一致性与完整性的数据模型,通过封装ETL算法,将技术分离,可以实现业务人员进行自助ETL操作。
2、 Kettle是一款国外免费开源的、可视化的、功能强大的ETL工具,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。但是也有不少缺点,例如打开时速度慢、性能较差、存在着不少无法解决的bug等其他问题,给用户的体验并不是十分的完美。
3、 Datastage是一款非常专业的ETL处理工具,为整个 ETL 过程提供了一个图形化的开发环境,它是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集或数据仓库的集成工具。但是价格比较昂贵,企业版的花费每月需好几万的人民币。
4、 Informatica与Datastage旗鼓相当,也是一款专业的商业ETL处理工具,依靠图形化的操作界面,无需编程语言便可以完成ETL过程的操作,虽然价格比Datastage略低,但要部署的话也需要不少的预算。
ETL的意义
在当今社会分秒必争的商业环境里,ETL技术可以大大增强大数据的处理速度,为商业决策赢得更多的宝贵时间,同时也为数据仓库的建立奠定了良好的基础。通常在进行数据分析时会用到BI与ETL这两个工具,但是市面上大部分的BI工具都不具有ETL的功能,而智分析则打破了这个局限,以云端SaaS的BI为基础,推出自助ETL的功能,旨在降低工具操作的复杂度,提供人人都是数据分析师的自助式数据探索工具,让业务人员可以快速挖掘数据中蕴藏的价值,最终实现商业价值的快速提升。