文档章节

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

编辑部的故事
 编辑部的故事
发布于 2017/02/08 16:27
字数 1520
阅读 7768
收藏 293
点赞 4
评论 27

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

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

© 著作权归作者所有

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

编辑部的故事

粉丝 1085
博文 231
码字总数 392922
作品 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 已加上。:rose:
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

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

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

gulf ⋅ 06/21 ⋅ 0

Kettle 与 Talend Open Studio 的 ETL 比较

Pentaho Data Integration (Kettle)是Pentaho生态系统中默认的ETL工具。通过非常直观的图形化编辑器(Spoon),您可以定义以XML格式储存的流程。在Kettle运行过程中,这些流程会以不同的方法...

ychenETL ⋅ 2011/06/13 ⋅ 0

有没有想过 你的数据分析方法可能已经过时?

  【IT168 编译】信息时代,能吃到虫子的已不再是早起的鸟儿,而是那些数据驱动的、早起的鸟儿。像百度、阿里巴巴和腾讯这样的大公司,都在不断囤积数据,因为他们都知道数据是金灿灿的宝贝...

it168网站 ⋅ 2017/11/02 ⋅ 0

mysql按区间分组获取各数量

对区间进行分组并且统计落在各区间内的数据量 主要使用 etl 和 INTERVAL 函数实现 mysql> select * from k1;+------+------+| id | yb |+------+------+| 1 | 100 || 2 | 11 || 3 | 5 || 4 |......

messud4312 ⋅ 2015/10/15 ⋅ 0

开源 BI 系统相关知识综合解读

这些众多的BI(商业智能)项目从规模和对BI系统支撑的完善程度上来说,大体可以分为Framework、Stand-aloneTools和BISuit三种类型。 Framework 开源框架,这是在商业BI系统中所没有的。我们可...

红薯 ⋅ 2009/05/06 ⋅ 0

数据仓库经验老鸟分享零基础转行大数据的最佳自学之路

本人从08年从事数据仓库工程师转到目前大数据管理工作的,对数据仓库感情颇深,也曾一直苦于没有太好的学习资料,自行摸索。 我认为数据仓库更像一门管理学艺术,大多用的也是关系型数据库,...

董黎明 ⋅ 前天 ⋅ 0

ETL介绍与ETL工具比较

ETL负责将分布的、异构数据源中的数据如关系数据、 ETL工具 旗鼓相当:Datastage与Powercenter: 就Datastage和Powercenter而言,这两者目前占据了国内市场绝大部分的份额,在成本上看水平相...

wl044090432 ⋅ 2017/03/04 ⋅ 0

深入了解当前ETL中用到的一些基本技术

【赛迪网-IT技术报道】前言: 数据集成是把不同来源、格式和特点的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享,是企业商务智能、数据仓库系统的重要组成部分。ETL是企业...

dwf07223 ⋅ 2014/09/17 ⋅ 0

ETL调度技术平台--TASKCTL

ETL的技术本质是:通过调度管理控制一系列具有数据处理功能的各种程序有序地运行。因此,有人总结:“ETL是BI(商业智能)的基础,调度是ETL的灵魂”。从功能层面讲,调度是ETL技术体系的重要...

施鹏飞 ⋅ 2013/01/26 ⋅ 14

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 这么好的姑娘都不要了啊

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @TigaPile :分享曾惜的单曲《讲真的》 《讲真的》- 曾惜 手机党少年们想听歌,请使劲儿戳(这里) @首席搬砖工程师 :怎样约女孩子出来吃饭,...

小小编辑 ⋅ 28分钟前 ⋅ 1

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部