工具传送门:
- Taskctl 商业付费版 (付费)
- Taskctl Web 商业免费版(永恒收费)
- Kettle(开源收费)
- Datastage(付费)
ETL 是数据仓库中的十分重要的一环,是承前启后的必要的一步。ETL 负责将散布的、异构数据源中的数据如关系数据、立体数据文件等抽取到长期中间层后进行荡涤、转换、集成,最初加载到数据仓库或数据集市中,成为联机剖析解决、数据挖掘的根底。
上面给大家介绍一下什么是 ETL 以及 ETL 罕用的三种工具——Datastage,Taskctl,Kettle。
什么是 ETL?
ETL,Extract-Transform-Load 的缩写,用来形容将数据从起源端通过抽取(extract)、转换(transform)、加载(load)至目标端的过程。
数据仓库构造
艰深的说法就是从数据源抽取数据进去,进行荡涤加工转换,而后加载到定义好的数据仓库模型中去。目标是将企业中的扩散、零乱、规范不对立的数据整合到一起,为企业的决策提供剖析根据。
ETL 是 BI 我的项目重要的一个环节,其设计的好坏影响生成数据的品质,间接关系到 BI 我的项目的成败。
为什么要用 ETL 工具?
在数据处理的时候,咱们有时会遇到这些问题:
- 当数据来自不同的物理主机,这时候如应用 SQL 语句去解决的话,就显得比拟吃力且开销也更大。
- 数据起源能够是各种不同的数据库或者文件,这时候须要先把他们整顿成对立的格局后才能够进行数据的解决,这一过程用代码实现显然有些麻烦。
- 在数据库中咱们当然能够应用存储过程去解决数据,然而解决海量数据的时候存储过程显然比拟吃力,而且会占用较多数据库的资源,这可能会导致数据资源有余,进而影响数据库的性能。
而上述遇到的问题,咱们用 ETL 工具就能够解决。ETL 工具具备以下几点劣势:
- 反对多种异构数据源的连贯。(局部)
- 图形化的界面操作非常不便。
- 解决海量数据速度快、流程更清晰等。
ETL 工具介绍
1.Datastage
IBM 公司的商业软件,业余的 ETL 工具,但同时价格不菲,适宜大规模的 ETL 利用。
应用难度:★★★★
2.Taskctl
商业软件,国产业余的 ETL 工具平台。价格上比 Datastage 便宜很多,适宜大规模的 ETL 利用。
应用难度:★★★
3.Taskctl Web 版
收费,在商业版 Taskctl 6.0 根底上纵向扩大而来,可跨多平台适宜中小企业 IT 自动化类零碎建和数据开发人员,如数据系统批量调度自动化、零碎运维自动化、企业数据资产监控等等
应用难度:★
4.Kettle
收费,最驰名的开源产品,是用纯 java 编写的 ETL 工具,只须要 JVM 环境即可部署,可跨平台,扩展性好。
应用难度:★★
三种 ETL 工具的比照
Datastage、Taskctl、Kettle 三个 ETL 工具的特点和差别介绍:
1. 操作
这三种 ETL 工具都是属于比较简单易用的,次要看开发人员对于工具的熟练程度。
2. 部署
Kettle 只须要 JVM 环境,Taskctl 须要服务器和客户端装置,而 Datastage 的部署比拟消耗工夫,有一点难度。
3. 数据处理的速度
大数据量下 Taskctl 与 Datastage 的处理速度是比拟快的,比较稳定。Kettle 的处理速度相比之下稍慢。
4. 服务
Taskctl 与 Datastage 有很好的商业化的技术支持,而 Kettle 则没有。商业软件的售后服务上会比收费的开源软件好很多。
5. 危险
危险与老本成反比,也与技术能力成正比。
6. 扩大
Kettle 的扩展性无疑是最好,因为是开源代码,能够本人开发拓展它的性能,而 Taskctl 和 Datastage 因为是商业软件,基本上不反对。
7.Job 的监控
三者都有监控和日志工具。
在数据的监控上,集体感觉 Taskctl 的实时监控做的更加好,能够直观看到数据抽取的状况,运行到哪一个控件上。这对于调优来说,咱们能够更快的定位到处理速度太慢的控件并进行解决,而 Datastage 也有相应的性能,然而并不直观,须要通过两个界面的比照才能够定位到处理速度迟缓的控件。有时候还须要通过一些办法去查找。
8. 网上的技术服务反对
Kettle< Datastage < Taskctl 相对来说,Kettle 在遇到问题去网上疾速找到解决办法的概率比拟低,只有通过网上翻阅技术文档和退出社群询问,效率比拟低;而相比 Datastage 和 Taskctl 则比较完善、因为是商业软件,网上不仅有欠缺的技术文档,24 小时线上还有技术近程反对答疑人员。
我的项目教训分享
在我的项目中,很多时候咱们都须要同步生产库的表到数据仓库中。一百多张表同步、反复的操作,对开发人员来说是仔细和急躁的考验。在这种状况下,开发人员最喜爱的工具无疑是 kettle,多个表的同步都能够用同一个程序运行,不用每一张表的同步都建一个程序,而 Taskctl 尽管有提供工具去批量设计,但还是须要生成多个程序进行一一配置,而 datastage 在这方面就显得比拟蠢笨。
在做增量表的时候,每次运行后都须要把将最新的一条数据操作工夫存到数据库中,下次运行咱们就取大于这个工夫的数据。Kettle 和 Taskctl 有控件能够间接读取数据库中的这个工夫置为变量。
有一句话说的好: 世上没有最好的,只有适宜的!
每一款 ETL 工具都有它的优缺点,咱们须要依据理论我的项目,权衡利弊抉择适宜的 ETL 工具,适合的就是最好的。当下越来越多公司及其客户更器重最新的数据(实时数据)展示,传统的 ETL 工具可能满足不了这样的需要,而实时流数据处理和云计算技术更合乎。所以咱们也须要与时俱进,学习大数据时代下的 ETL 工具。