我们需要什么样的ETL?

从10年前的数据仓库到当前的大数据平台,ETL也需要与时俱进,这里来谈谈个人的理解,如果你在考虑建设新的企业级ETL平台,可以作为参考:

一、定位的重新认识

ETL作为传统数据仓库的底层技术组件,主要是服务于数据采集的,因此,一般数据流动往往是单向的,但在新的时期,我们需要拓展其概念的内涵,从ETL升级到交换,以适应更多的应用场景,这是大数据平台规划人员特别需要考虑的。

但我们看到,在很多企业PaaS平台级的研发中,并未将交换其纳入产品的核心功能,为什么?

ETL出来之时,的确适应了数据仓库建设的需要,毕竟系统建设之初,数据采集和整合为王, 技术驱动业务,没什么好说的。

但在大数据时代,需要与时俱进,基于笔者的实践,感觉开放的交换平台将是未来标配,原因有以下几个:

从业务角度讲, 随着数据应用的日益丰富,不同平台、系统的相互大批量数据交互成常态,仅仅满足于采集数据已经不适应业务需要,还需要能够为数据的目的端落地提供支撑,我们需要一个端到端的更适应业务需要的交换系统,而不是只管自己一亩三分地的ETL系统, 比如浙江移动的日常的数据交换应用早就超过了简单的数据采集需求,业务始终为王。

从技术角度讲,ETL做一定的扩展可以升级为兼具交换能力,两者有传承,可以实现平滑过渡,不是有谁没谁的问题,我们好不容易搞了PaaS级的ETL,但交换却要考虑用另一个工具实现,同时未来大数据平台组件将异常丰富,相互之间的数据交换将是常态,必须要有个PaaS级的交换工具满足这种要求,这是个趋势性的东西。

从管理角度讲,无论是ETL,还是系统或应用间的数据交换,管理的对象都是接口,描述的方式没有本质的区别,我们需要用一种工具实现所有接口的透明化统一管理,显然升级ETL是最好的方案,很多企业采集由于ETL工具存在管的还算可以,但交互的接口管理一塌糊涂,比如繁多的FTP搞晕了运维人员,付出的管理成本很大。

二、交换平台的一种架构

以下是勾画的一种数据交换平台的功能架构,供参考。

交换平台除了传统ETL功能, 分布式动态可扩展是必须的,现在云化交换平台产品已经很多了,应该各有千秋吧,特别强调以下几点,:

必须具备多样化数据采集能力,支持对表、文件、消息等多种数据的实时增量数据采集(使用flume、消息队列、OGG等技术)和批量数据分布式采集等能力(SQOOP、FTP VOER HDFS),比基于传统ETL性能有量级上的提升。

必须支持对于业界主流数据库的相互对接能力,包括ORACLE/HIVE/GBASE/IMPALA/ASTER/HBASE等等,要实现这些功能,涉及到互信等众多问题,但对于业务的价值巨大。

必须具备多租户的管理,因为传统ETL可能跟应用无关,统一运维团队配置即可,但交换跟应用强相关,必须要能够授权自主配置,这个时候,多租户管理就变得非常重要。

必须具备能力开放能力,能够对外输出元数据,这个其实是未来对于任何企业级平台的刚性要求,做平台的企业别老想着封闭,包打天下, 比如浙江移动有个统一的数据管理平台,不能由于交换平台的封闭,让数据管理平台废了半条腿,这是企业未来引入技术组件必须考虑的因素。

必须具备可视化快速配置能力,能够提供图形化的开发和维护界面,支持图形化拖拽式开发,免代码编写,降低开发难度,每配置一个数据接口耗时越小越好,比如以前我们采用的老ETL平台一个接口平均配置3小时,这是无法忍受的。

必须具备统一调度管控能力,实现采集任务的统一调度,可支持Hadoop的多种技术组件(如 MapReduce、Spark 、HIVE)、关系型数据库存储过程、 shell脚本等,支持多种调度策略(时间/接口通知/手工)。

三、交换平台的现实挑战

除了BAT,业内真正能打造这类PaaS级的ETL平台屈指可数,因为要实现此类交换平台综合要求其实非常高,除了技术因素,挑战更多来自于需求理解、开放性及持续服务能力,这是我们在实践中碰到的痛点:

客户需求的理解往往是硬伤,很多公司技术的确很强,但由于产品是卖给别人的,自己也不会用,其很难达到BAT产品的境界,未来是BAT的,不是说BAT技术有多强,而在于其产品从实践中走出来,在客户需求理解能力上是大多数公司难以项背的,客户大多数时候并不需要你的技术有多牛逼,快速解决问题就行,但此类产品经常陷入拼性能,列功能,强升级的场景,而忽视本质的东西。

开放性也是很多公司的软肋,随便拿个可视化界面来讲吧, 大多数场景其实需要极简的界面,我们经常哀求能否开放个API出来啊,其他平台无缝集成下行不,但往往无法满足,说不符合产品路线,如果下回有个ETL公司来跟你推销产品,你首先得问一句,能开放元数据接口不?能开放API不?

服务型公司才是未来,一个产品打天下的时代即将过去,未来是服务的时代,甭跟我提一堆概念,谁都无法预测未来,我更关注当下,既然我找你,你就要做好持续服务的准备,一个合理的优化短则一月,多则1-2年,没有哪个客户有耐心。

ETL作为企业搞大数据核心的技术平台,在建设或选择的时候,要考虑的东西其实非常多,大多传统企业在这方面的掌控能力是非常欠缺的,很容易陷入建设的怪圈而效益却很难显现,以为搞了云化就OK了,其实仅仅解决了ETL中很小的一个问题,不被忽悠并理解自己真正想要什么其实很难。

我上面列的那张功能架构图,任何一个点的需求即使要进行确认,投入的精力也是蛮大的, 不全面考虑,死磕到底,最后吃亏的终将是企业自己, 一个小功能的缺失就可能导致ETL的效率的大幅降低,甚至可能推倒重来,留给运维团队的也将是无尽的痛苦。

当然如果企业的数据量不大,那怎么捣鼓都行,其实大多数企业当前并不需要重型的ETL大炮,但对于每个BI人,从大数据的角度讲,理解它又是有必要的。

本文作者:傅一平

来源:51CTO

时间: 2024-08-30 21:28:01

我们需要什么样的ETL?的相关文章

ETL概述(原创)

ETL概述ETL,Extraction- Transformation-Loading的缩写,即数据抽取(Extract).转换(Transform).装载(Load)的过程,它是构建数 据仓库的重要环节.ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为 企业的决策提供分析依据.ETL是BI项目重要的一个环节.通过ETL,我们可以基于源系统中的数据来生成数据仓库.ETL为我们搭建了OLTP系统和 OLAP系统之间的桥梁

灵活有效的数据仓库解决方案,第3部分:设计并实现仓库ETL过程

简介 数据集成是数据仓库中的关键概念.ETL(数据的提取.转换和加载)过程的设计和实现是数据仓库解决方案中极其重要的一部分.ETL 过程用于从多个源提取业务数据,清理数据,然后集成这些数据,并将它们装入数据仓库数据库中,为数据分析做好准备. ETL 过程设计 尽管实际的 ETL 设计和实现在很大程度上取决于为数据仓库项目选择的 ETL 工具,但是高级的系统化 ETL 设计将有助于构建高效灵活的 ETL 过程. 在深入研究数据仓库 ETL 过程的设计之前,请记住 ETL 的经验法则:"ETL 过程

InfoSphere DataStage 运行时列扩展(RCP)在 ETL 中的应用

总体阐述 随着企业信息化建设的发展,大量企业都在架设基于自身所在行业的特点的商业智能系统,来指导商业运营.设计合理,运营高效的商业智能系统,在企业的经营决策中,越来越起着至关重要的作用. IBM InfoSphere Information Server 作为可扩展的企业信息体系结构基础,可以满足企业对于巨大信息量的需求,使企业在运营中更快的交付使用高质量的业务成果. IBM Infosphere DataStage 作为它的重要组成部分,支持数据结构从简单到复杂的大量数据进行收集,转换和分发,

数据抽取、清洗与转换 BI项目中ETL设计

ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提供分析的依据 ETL是BI项目最重要的一个环节,通常情况下ETL会花掉整个项目的1/3的时间,ETL设计的好坏直接关接到BI项目的成败.ETL也是一个长期的过程,只有不断的发现问题并解决问题,才能使ETL运行效率更高,为项目后期开发提供准确的数据. ETL的设计分三部分:数据抽取.数据的清洗转换.数据的加载.在设计ETL的时候也是从这三部分出发.数据的抽取是从

基于C++ 语言库的GCC和Clang编译器基准测试报告(ETL)

从我使用 C++ 代码完成了不同编译器的基准测试到现在,已经有一段时间了.由于我最近发布了 ETL 项目的 1.1 版(一个具有表达式模板的优化矩阵/向量计算库),所以我决定使用它作为我的基准测试的基版本.它是一个带有大量模板的 C++ 14 库.我要编译完整的测试套件(124 个测试用例).这是直接在最新版本(1.1)的代码上完成的.我将在调试模式下编译一次,并在 release_debug(release + debug 符号和断言)下进行一次编译,并记录每个编译器的执行时间.该测试将使用支

关于etl工具kettle的使用

问题描述 关于etl工具kettle的使用 楼主因为工作原因需要使用kettle,目前遇到一个问题请各位大神帮帮我. 在进行简单的转换的时候,如何操作才能传递参数到表输入的条件中. 例如,_select* from tablename where column='XXXX' 怎么操作才能实现只需要传入参数,就能得到不同结果!谢谢大家了 解决方案 说明:阻塞数据是将前一步的数据挤压到一个临时文件.知道没有数据或步骤执行完成之后,才执行下一个步骤.......答案就在这里:ETL kettle 工具

ETL学习笔记之四:开源项目 Kettle

现在是一个Google的时代,而对于开发者,开源已成为最重要的参考书.对于某课题,不管你是深入研究还是初窥门径.估且google一把,勾一勾同行的成就,你必会获益良多.     说到ETL开源项目,Kettle当属翘首,因此,偶决定花点时间了解一下.     项目名称很有意思,水壶.按项目负责人Matt的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出.呵呵,外国人都很有联想力.     看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到Kettle的四大块:     Ch

基于kettle的数据ETL系统开发与设计

问题描述 基于kettle的数据ETL系统开发与设计 关于kettle的二次开发:功能包括,基于正则表达式的数据检查,实现数据转换,并且能自动入库.因为使用这个软件的特别少,可以学习的资料特别少.希望会用这个软件的大神能回答一下,CS学妹万分感谢O(∩_∩)O 解决方案 数据迁移ETL之kettle一

数据-关于etl工具kettle的流程设计

问题描述 关于etl工具kettle的流程设计 ETL工具kettle中如何设计流程使获取excel中多个sheet页数据到指定数据集中 解决方案 ETL工具设计关于ETL 工具 kettleETL工具kettle源码编译

atastage 9 1-Datastage 9.1 ETL工程出现中文乱码

问题描述 Datastage 9.1 ETL工程出现中文乱码 DataStage Administrator中NLS设置为GB1232, 在DataStage designer中从源数据中抽取表数据, 当表字段内容有中文时view data出现乱码 如下图所示: 我猜可能是字符集的问题,但是不知道在哪里设置,求高手指点