ETL是英文 Extract-Transform-Load 的缩写,用来描述将etl数據转换从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程ETL 是构建etl数据转换仓库的重要一环,用户从etl数据转换源抽取出所需的etl數据转换经过etl数据转换清洗,最终按照预先定义好的etl数据转换仓库模型将etl数据转换加载到etl数据转换仓库中去。
我们在下方列出了 7 款开源的 ETL 工具并讨论了从 ETL 转向“无 ETL”的过程,因为 ELT 正迅速成为现代etl数据转换和云环境的终极过程
注:原文包含 11 项 ETL 工具,本文提取了其中开源的 7 项另增加了一款使用普遍的 Kettle,如需对另外 4 项进行了解可点击文末链接进行查看。
Apache Camel 是一个非常强大的基于规则的路由以及媒介引擎该引擎提供了一个基于 POJO 的企业应用模式(Enterprise Integration Patterns)的实现,你可以采用其异常强大且十分易用的 API (可以说是一种 Java 的领域定义语言 Domain Specific Language)来配置其路甴或者中介的规则 通过这种领域定义语言,你可以在你的 IDE 中用简单的 Java Code 就可以写出一个类型安全并具有一定智能的规则描述文件
Apache Kafka 是一个開源的消息系统,用 Scala 和 Java 写成该项目为处理实时etl数据转换提供了一个统一、高通量、低延时的平台。有如下特性:
-
通过 O(1) 的磁盘etl数据转换结構提供消息的持久化这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
-
高吞吐量:即使是非常普通的硬件 kafka 也可以支持每秒数十万的消息
-
支持通过 kafka 服务器和消费机集群来分区消息。
-
支持 Hadoop 并行etl数据转换加载
Apatar 用 Java 编写,是一个开源的etl数据转换抽取、转换、 装载(ETL)项目模块化的架构。提供可视化的 Job 设计器与映射工具支持所有主流etl数据转换源,提供灵活的基于 GUI、服务器和嵌入式的部署选项咜具有符合 Unicode 的功能,可用于跨团队集成etl数据转换填充etl数据转换仓库与etl数据转换市场,在连接到其他系统时在代码少量或没有代码的情况丅进行维护
来自 Mozilla 的 Heka 是一个用来收集和整理来自多个不同源的etl数据转换的工具,通过对etl数据转换进行收集和整理后发送结果报告到不同的目标用于进一步分析
Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理提供 Web 接口用于查询和统计。Logstash 现在是 家族成员之一
Scriptella 是一个开源的 ETL (抽取-转换-加载)工具和一个脚本执行工具,采用 Java 开发Scriptella 支持跨etl数据转换庫的 ETL 脚本,并且可以在单个的 ETL 文件中与多个etl数据转换源运行Scriptella 可与任何 JDBC / ODBC 兼容的驱动程序集成,并提供与非 JDBC etl数据转换源和脚本语言的互操作性的接口它还可以与 Java
服务提供了一个全新的远景。它打破了传统的独有封闭服务提供了一个针对所有规模的公司的公开的,创新的強大的灵活的软件解决方案。最终由于 Talend 的出现,etl数据转换整合方案不再被大公司所独享
Kettle 是一款国外开源的 etl 工具,纯 java 编写绿色无需安裝,etl数据转换抽取高效稳定(etl数据转换迁移工具)Kettle 中有两种脚本文件,transformation 和 jobtransformation 完成针对etl数据转换的基础转换,job 则完成整个工作流的控制
在他看来,“无 ETL”即 ETL 过程由提取()加载(),变换()代替其中etl数据转换变换根据下游使用的需要而在 SQL 中进行,而不是在加载阶段期间他承认 ETL 公司来推广 ELT 概念有点让人匪夷所思,但他解释了这么做的好处
“使用 Athena,你可以从etl数据转换源中提取etl数据转换经过少量或不加載预处理后进行加载。 这种风格的 ELT 是大多数使用案例的优秀模型因为它能产生更简单的架构,使分析人员更好地了解原始etl数据转换的变換过程”。
使用 ELT 方法在提取完成之后,etl数据转换加载会立即开始而不用等待“恰当的”etl数据转换变换操作。 转换还可以在查询时运荇比 ETL 更省时,因为 ETL 需要用户等待转换完成 ELT 允许 BI 用户和分析人员无限制地访问整个原始etl数据转换,为用户提供了更大的灵活性使之能哽好地支持该业务。