ETL是BI项目重要的一个环节。 通常情况下,在BI项目中ETL会花掉整个项目至少1/3的时间,ETL设计的好坏直接关系到BI项目的成败。
什么是ETL?
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。在设计ETL的时候我们也是从这三部分出发。数据的抽取是从各个不同的数据源抽取到ODS(Operational Data Store,操作型数据存储)中——这个过程也可以做一些数据的清洗和转换),在抽取的过程中需要挑选不同的抽取方法,尽可能的提高ETL的运行效率。
ETL的实现有多种方法,常用的有三种。一种是借助ETL工具(如Oracle的OWB、SQL Server 2000的DTS、SQL Server2005的SSIS服务、Informatic等)实现,一种是SQL方式实现,另外一种是ETL工具和SQL相结合。常见的主流ETL工具,还有Kettle、Data Pipeline、Talend、Informatica、DataX 、GoldenGate、nifi等。
前两种方法各有各的优缺点,借助工具可以快速的建立起ETL工程,屏蔽了复杂的编码任务,提高了速度,降低了难度,但是缺少灵活性。SQL的方法优点是灵活,提高ETL运行效率,但是编码复杂,对技术要求比较高。第三种是综合了前面二种的优点,会极大地提高ETL的开发速度和效率。
市面上大多BI工具都不含ETL功能,在进行上述项目时,通常会用到BI、ETL两个工具,成本高、花费时间长。
而数睿数据的Onemind大数据平台基于这个需求,依赖十余年数仓经验,运用第三种方式,推出可视化ETL工具---数据交换机。通过简单的拖拽就可以完成ETL过程。最重要的是,这款可视化ETL工具---数据交换机,是由南京数睿数据科技有限公司自主研发完成,既可以单独使用,也可以在平台上与其他功能模块一起使用。
以下,我们将从数睿数据的Onemind大数据平台中“数据交换机”中ETL功能的核心优势与应用场景入手,带你了解如何高效实现数据抽取、转化、清洗过程。
核心优势
节点设计可视化、流程化,操作更易用
一般情况下,ETL过程设计需要用到大量的代码,且重复利用率较低。Onemind大数据平台的数据交换机充分结合大量项目人员实施习惯,操作敏捷易用,可快速地建立起ETL过程,提高效率,降低实施难度,让数据交换机有着更友好易用的数据处理体验:
- 数据处理支持批量创建,ETL定义支持数据抽样;
- 开发过程支持多人协同定义,共享资料库,使得数据处理过程更高效;
- 系统内部封装大量清洗转换规则,极大程度的降低技术门槛,只需简单的拖拽配置,即可玩转数据处理;
丰富的数据处理组件
Onemind平台的数据交换机ETL组件丰富多样,面向数据分析师精心打造,满足各种各样的数据处理场景。一般情况下,一个简单的数据处理需求,前期在技术人员这里可能徘徊2到3天,更何况还有后期的修改。有了丰富的可视化ETL组件,复用率高,屏蔽复杂的编码任务,操作简单,数据处理更高效。
灵活的任务调度
一般情况下,ETL过程都会伴随着调度任务的设置。比如,某销售部门需要每周五抽取数据计算当周销售利润用于汇报,如果利用ETL实现,时间调度管理必不可少。Onemind平台的数据交换机的ETL调度导向,深度考虑各使用场景,用户只需简单操作,即可实现复杂的调度任务。
- 支持基于时间或事件的调度机制,如:任意事件周期、文件到达、脚本事件等;
- 调度设置支持crontab表达式;
- 调度设置能指定到月份、星期、日期、小时、分钟的粒度;
- 支持设置调度的时间窗口,重调时间间隔等;
支持快速热拔插,可扩展性强
传统的ETL工具比如Kettle、Talend、Informatica等,对于数据量上升导致性能出问题,可优化的空间不够大,毕竟底层是封装好的。我们自研的这套ETL工具,不同与传统ETL,即使新增或删减某个节点处理流程,也不影响系统的正常工作,从而提高了系统的可靠性、快速维修性、冗余性和对灾难的及时恢复能力等。
- 通过融合离线批处理引擎和在线实时处理引擎,使得同样的数据处理流程可以同时支撑批处理与实时处理;
- 提供从单机到1000+规模集群的支持能力,从而有效支撑小数据到海量数据的无缝扩容能力。
场景应用
通过数据清洗加工获取目标数据
场景说明:电商公司分析人员根据订单数据进行用户特征分析。这时需要基于订单数据,计算一些相应的分析指标,如每个用户的消费频次,销售额最大的单品,用户复购时间间隔等。
串联ETL过程 场景说明:抽取到最新的学生信息、成绩信息、课程信息,计算学生总成绩并实现每日数据抽取。