文档章节

几款开源的 ETL 工具及 ELT 初探

编辑部的故事
 编辑部的故事
发布于 2017/02/08 16:27
字数 1520
阅读 9135
收藏 295

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL 是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

我们在下方列出了 7 款开源的 ETL 工具,并讨论了从 ETL 转向“无 ETL”的过程,因为 ELT 正迅速成为现代数据和云环境的终极过程。

注:原文包含 11 项 ETL 工具,本文提取了其中开源的 7 项,另增加了一款使用普遍的 Kettle,如需对另外 4 项进行了解,可点击文末链接进行查看。

优秀的 ETL 工具

1、Apache Camel

Apache Camel 是一个非常强大的基于规则的路由以及媒介引擎,该引擎提供了一个基于 POJO 的企业应用模式(Enterprise Integration Patterns)的实现,你可以采用其异常强大且十分易用的 API (可以说是一种 Java 的领域定义语言 Domain Specific Language)来配置其路由或者中介的规则。 通过这种领域定义语言,你可以在你的 IDE 中用简单的 Java Code 就可以写出一个类型安全并具有一定智能的规则描述文件。

主页:http://camel.apache.org/

2、Apache Kafka

Apache Kafka 是一个开源的消息系统,用 Scala 和 Java 写成。该项目为处理实时数据提供了一个统一、高通量、低延时的平台。有如下特性:

  • 通过 O(1) 的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。

  • 高吞吐量:即使是非常普通的硬件 kafka 也可以支持每秒数十万的消息。

  • 支持通过 kafka 服务器和消费机集群来分区消息。

  • 支持 Hadoop 并行数据加载。

主页:https://kafka.apache.org/

3、Apatar

Apatar 用 Java 编写,是一个开源的数据抽取、转换、 装载(ETL)项目。模块化的架构。提供可视化的 Job 设计器与映射工具,支持所有主流数据源,提供灵活的基于 GUI、服务器和嵌入式的部署选项。它具有符合 Unicode 的功能,可用于跨团队集成数据,填充数据仓库与数据市场,在连接到其他系统时在代码少量或没有代码的情况下进行维护。

主页:http://apatar.com/

4、Heka

来自 Mozilla 的 Heka 是一个用来收集和整理来自多个不同源的数据的工具,通过对数据进行收集和整理后发送结果报告到不同的目标用于进一步分析。

主页:http://hekad.readthedocs.io/en/v0.10.0/

5、Logstash

Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。Logstash 现在是 ElasticSearch 家族成员之一。

主页:https://www.elastic.co/products/logstash

6、Scriptella

Scriptella 是一个开源的 ETL (抽取-转换-加载)工具和一个脚本执行工具,采用 Java 开发。Scriptella 支持跨数据库的 ETL 脚本,并且可以在单个的 ETL 文件中与多个数据源运行。Scriptella 可与任何 JDBC / ODBC 兼容的驱动程序集成,并提供与非 JDBC 数据源和脚本语言的互操作性的接口。它还可以与 Java EE,Spring,JMX,JNDI 和 JavaMail 集成。

主页:http://scriptella.org/

7、Talend

Talend (踏蓝) 是第一家针对的数据集成工具市场的 ETL(数据的提取 Extract、传输 Transform、载入Load)开源软件供应商。Talend 以它的技术和商业双重模式为 ETL 服务提供了一个全新的远景。它打破了传统的独有封闭服务,提供了一个针对所有规模的公司的公开的,创新的,强大的灵活的软件解决方案。最终,由于 Talend 的出现,数据整合方案不再被大公司所独享。

主页:http://www.talend.com/

8、Kettle 

Kettle 是一款国外开源的 etl 工具,纯 java 编写,绿色无需安装,数据抽取高效稳定(数据迁移工具)。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。

主页:http://kettle.pentaho.org/

ELT 初探

虽然 Stitch 也是一个 ETL 服务企业,但其 CEO 在 TechTarget 杂志的访谈中也称赞了 AWS Athena 服务,同时提出了从 ETL 转向 ELT 的需要。

在他看来,“无 ETL”即 ETL 过程由提取(Extract),加载(Load),变换(Transform)代替,其中数据变换根据下游使用的需要而在 SQL 中进行,而不是在加载阶段期间。他承认 ETL 公司来推广 ELT 概念有点让人匪夷所思,但他解释了这么做的好处。

“使用 Athena,你可以从数据源中提取数据,经过少量或不加载预处理后进行加载。 这种风格的 ELT 是大多数使用案例的优秀模型,因为它能产生更简单的架构,使分析人员更好地了解原始数据的变换过程。”点此了解更多

使用 ELT 方法,在提取完成之后,数据加载会立即开始,而不用等待“恰当的”数据变换操作。 转换还可以在查询时运行,比 ETL 更省时,因为 ETL 需要用户等待转换完成。 ELT 允许 BI 用户和分析人员无限制地访问整个原始数据,为用户提供了更大的灵活性,使之能更好地支持该业务。

更多内容,可参阅:ETL vs ELT: The Difference is in the How.

编译自:11 Great ETL Tools and the Case for Saying 'No' to ETL

责任编辑:开源中国 - 达尔文

© 著作权归作者所有

共有 人打赏支持
编辑部的故事

编辑部的故事

粉丝 1201
博文 252
码字总数 445830
作品 0
深圳
运营/编辑
私信 提问
加载中

评论(27)

天王盖地虎
天王盖地虎
只用过Datastage,不过听说kettle也很不错
登录-注册
登录-注册

引用来自“左崖花开”的评论

引用来自“HideHai”的评论

引用来自“lijianlin5206”的评论

引用来自“伪随机。”的评论

居然没kettle

+1

引用来自“wjxz_cy”的评论

+1

引用来自“窮兄急惡”的评论

+1

引用来自“尼古拉希”的评论

+1

引用来自“hcqenjoy”的评论

+1

引用来自“OSC首席捣蛋侠”的评论

+100

引用来自“kerneler”的评论

+1
+1 看到这文章,都想不到赞美kettle的词了。

+1

引用来自“竹隐江南”的评论

+1
+1
宇宙蒙面侠X
宇宙蒙面侠X
强烈建议加上 https://github.com/jumpmind/metl 试用过以后觉得秒杀上面所有
丶灯
丶灯

引用来自“丶灯”的评论

引用来自“丶灯”的评论

丶灯
丶灯

引用来自“丶灯”的评论

丶灯
丶灯
丶灯
丶灯

引用来自“管我O-O想啥”的评论

这些我都没听过,我只听过kettle,用起来很爽

+1
达尔文
达尔文
各位稍安勿躁,Kettle 已加上。🌹
G7
G7
这些我都没听过,我只听过kettle,用起来很爽
竹隐江南
竹隐江南

引用来自“左崖花开”的评论

引用来自“HideHai”的评论

引用来自“lijianlin5206”的评论

引用来自“伪随机。”的评论

居然没kettle

+1

引用来自“wjxz_cy”的评论

+1

引用来自“窮兄急惡”的评论

+1

引用来自“尼古拉希”的评论

+1

引用来自“hcqenjoy”的评论

+1

引用来自“OSC首席捣蛋侠”的评论

+100

引用来自“kerneler”的评论

+1
+1 看到这文章,都想不到赞美kettle的词了。

+1
+1
几款开源的ETL工具及ELT初探

几款开源的ETL工具及ELT初探 作者:佚名来源:开源中国|2017-02-13 21:32 ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(lo...

yuanwx0328
2017/11/15
0
0
数据仓库技术概述(一看就是架构师写的,对我极其有用)

ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于...

gulf
06/21
0
0
ELT vs ETL

一篇讲述非常清楚的博文。特转放于此,供路过的朋友共享。翻译太麻烦了,不过如果有朋友需要,欢迎留言,共同翻译,共同讨论。 So what is better, ETL or ELT? Vincent McBurney (IBM Infor...

ychenETL
2010/05/17
1K
0
ETL 是什么?数据提取、转换和加载

提取、转换、加载(ETL)是一个成熟的过程,它使组织能够利用不同的数据,而不管数据驻留在何处或存储数据的格式如何。随着时间的推移,ETL随着业务需求的发展,支持NoSQL数据库中的流数据和非...

oschina
08/15
1K
2
ELT有什么好的开源工具

今年做了三个ETL的项目,都是以雇佣兵的形式。 第一个项目是ERP结合B2B数据同步,算是以代码去做这个事情。 第二个项目大公司,逻辑比较复杂,我用脚本和存储过程去完成。 第三个项目用的是IBM的...

Maurice_Xin
11/21
107
1

没有更多内容

加载失败,请刷新页面

加载更多

PHP生成CSV之内部换行

当我们使用PHP将采集到的文件内容保存到csv文件时,往往需要将采集内容进行二次过滤处理才能得到需要的内容。比如网页中的换行符,空格符等等。 对于空格等处理起来都比较简单,这里我们单独...

豆花饭烧土豆
今天
1
0
使用 mjml 生成 thymeleaf 邮件框架模板

发邮件算是系统开发的一个基本需求了,不过搞邮件模板实在是件恶心事,估计搞过的同仁都有体会。 得支持多种客户端 支持响应式 疼彻心扉的 outlook 多数客户端只支持 inline 形式的 css 布局...

郁也风
今天
4
0
让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字

让哲学照亮我们的人生——读《医务工作者需要学点哲学》有感2600字: 作者:孙冬梅;以前读韩国前总统朴槿惠的著作《绝望锻炼了我》时,里面有一句话令我印象深刻,她说“在我最困难的时期,...

原创小博客
今天
3
0
JAVA-四元数类

public class Quaternion { private final double x0, x1, x2, x3; // 四元数构造函数 public Quaternion(double x0, double x1, double x2, double x3) { this.x0 = ......

Pulsar-V
今天
17
0
Xshell利用Xftp传输文件,使用pure-ftpd搭建ftp服务

Xftp传输文件 如果已经通过Xshell登录到服务器,此时可以使用快捷键ctrl+alt+f 打开Xftp并展示Xshell当前的目录,之后直接拖拽传输文件即可。 pure-ftpd搭建ftp服务 pure-ftpd要比vsftp简单,...

野雪球
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部