ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL 是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。我们在下方列出了7款开源的ETL工具,并讨论了从 ETL 转向“无 ETL”的过程,因为 ELT 正迅速成为现代数据和云环境的终极过程。

作者:佚名来源:开源中国|2017-02-13 21:32

9月15日技术沙龙 | 如何将智能化和运维工作相结合,实现智能运维!

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工具及ELT初探的更多相关文章

  1. Sqool与kettle开源的ETL工具

    现在的ETL都是基于管道的模式(数据流)运行,比较有名的有 TaskCTL ========================================== 数据抽取的开源工具 一个是RDBMS ...

  2. Kettle实现数据抽取、转换、装入和加载数据-数据转移ETL工具

    原文地址:http://www.xue51.com/soft/5341.html Kettle是来自国外的一款开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,绿色无需 ...

  3. 开源作业调度工具实现开源的Datax、Sqoop、Kettle等ETL工具的作业批量自动化调度

    1.阿里开源软件:DataX DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳 ...

  4. etl学习系列1——etl工具安装

    ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...

  5. 集团公司(嵌入ETL工具)财务报表系统解决方案

    集团公司(嵌入ETL工具)财务报表系统解决方案 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包括:金矿.铜矿.房产.化纤等.由于子公司在业务上的差异,子 ...

  6. 大数据之ETL工具Kettle的--1功能介绍

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了就是,很有必要去理解一般ETL工具必备的特性和功能,这样才更好的掌握Kettle的使用. ...

  7. etl工具,kettle实现循环

    Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window.Linux.Unix上运行,绿色无需安装,数据抽取高效稳定. 业务模型: 在关系型数据库中有张很大的数据存储表,被设计成奇偶 ...

  8. ETL工具的功能和kettle如何来提供这些功能

    不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...

  9. 集团公司(嵌入ETL工具)財务报表系统解决方式

    集团公司(嵌入ETL工具)財务报表系统解决方式 一.项目背景: 某集团公司是一家拥有100多家子公司的大型集团公司,旗下子公司涉及各行各业,包含:金矿.铜矿.房产.化纤等.因为子公司在业务上的差异.子 ...

随机推荐

  1. vi/vim基本使用方法(转)

    转自:http://www.cnblogs.com/itech/archive/2009/04/17/1438439.html vi/vim 基本使用方法 本文介绍了vi (vim)的基本使用方法,但 ...

  2. CentOS6.9 安装OpenResty

    1.安装依赖包 yum install -y gcc gcc-c++ readline-devel pcre-devel openssl-devel tcl perl 2.安装OpenResty 首先 ...

  3. Azkaban(三)Azkaban的使用

    界面介绍 首页有四个菜单 projects:最重要的部分,创建一个工程,所有flows将在工程中运行. scheduling:显示定时任务 executing:显示当前运行的任务 history:显示 ...

  4. 【PAT】1015 德才论 (25)(25 分)

    1015 德才论 (25)(25 分) 宋代史学家司马光在<资治通鉴>中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得 ...

  5. day5模块学习--shutil模块

    shutil模块 高级的 文件.文件夹.压缩包 处理模块 os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作.比如说:绝对路径,父目录……  但是,os文件的操作 ...

  6. linux用户下的.profile文件丢失

    登录用户时出现以下问题: #su - wqq-bash-4.1$ -bash-4.1$ 查看时发现环境变量文件丢失造成的 解决方法: # ls -la /etc/skel/  total 36drwx ...

  7. shell如何向python传递参数,shell如何接受python的返回值

    1.shell如何向python传递参数 shell脚本 python $sendmailCommandPath $optDate python脚本 lastDateFormat = sys.argv ...

  8. Mac下思维导图Xmind使用入门

    1.软件下载 中文官网地址: http://www.xmindchina.net   安装过程比较傻瓜化,这里就不截图了. 2.用Xmind设计软件模块: 1>.新建一个思维导图,如下图,选 ...

  9. java字符串解析

    java的虚拟机在内存中开辟出一块单独的区域,用来存储字符串对象,这款内存区域被称为字符串缓冲池. //创建字符串的时候先查找字符串缓冲池中没相同的对象,如果相同的对象就直接返回改对象的引用 //如果 ...

  10. Wannafly挑战赛9 C - 列一列

    链接:https://www.nowcoder.com/acm/contest/71/C来源:牛客网 题目描述 小W在计算一个数列{An},其中A1=1,A2=2,An+2=An+1+An.尽管他计算 ...