上篇文章我们介绍了ETL的概念和ETL的整个过程 。那么今天我们给大家介绍一下ETL的常用工具:DataX、Datastage、Informatica、Kettle、DataPipeline。
为什么要使用ETL工具?
实际生产环境中我们的数据源可能是不同的数据库或者文件,这时候需要我们先把文件整理成统一的格式再做处理这样的过程要用代码实现显然有些麻烦。
但数据来自不同的物理机,如果我们用SQL语句去处理的话,就显得特别吃力,开销也会很大。
使用存储过程处理海量数据会占用大量数据库资源,导致数据资源不足,影响数据库性能。
对于这些问题,我们可以通过使用ETL工具去解决。
部分工具支持多种异构数据的连接。
图形化的界面,操作十分方便简单。
处理hi阿来那个海量数据快,流程清晰。
ETL工具介绍
阿里开源软件:DataX
DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
Kettle开源软件:水壶(中文名)
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,扩展性好,数据抽取高效稳定。主从结构,没有高可用。不支持数据的实时同步,也不支持断点续传。
IBM公司商业软件:Datastage
最专业的商业ETL工具,价格较贵,但是大数据量下处理速度也能保持较快的处理速度和稳定性。实时监控做的也很好,可以看到数据抽取的情况,运行到哪一步,很直观。售后技术支持强大。
商业软件:Informatica
专业的ETL工具,价格上比Datastage便宜一点,需要服务器和客户端的安装,处理速度上和Datastage相当。分布式部署,支持实时,但是效率不高。技术支持主要在美国,所以国内用的较少。
国内:DataPipeline
国内收费工具,相比DataX,DataPipeline有可视化的过程监控,提供多样化的图标,辅助运维,故障问题实时预警。而DataX需要依赖工具日志定位故障问题。支持实时性,DataX则是定时的。支持断点续传,DataX则不支持。架构上也是分布式的,支持水平扩展。
相比那些收费的ETL工具,我们的开源软件也有自己的优势:学习资料多、扩展性好、不收费。所以,实际生产环境下,需要我们根据实际项目选择适合的合适的工具。