轉載:https://blog.csdn.net/juceli/article/details/81448224
ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。ETL 是構建數據倉庫的重要一環(huán),用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。我們在下方列出了7款開源的ETL工具,并討論了從 ETL 轉向“無 ETL”的過程,因為 ELT 正迅速成為現代數據和云環(huán)境的終極過程。
ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過抽取(extract)、轉換(transform)、加載(load)至目的端的過程。ETL 是構建數據倉庫的重要一環(huán),用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。
我們在下方列出了 7 款開源的 ETL 工具,并討論了從 ETL 轉向“無 ETL”的過程,因為 ELT 正迅速成為現代數據和云環(huán)境的終極過程。
注:原文包含 11 項 ETL 工具,本文提取了其中開源的 7 項,另增加了一款使用普遍的 Kettle,如需對另外 4 項進行了解,可點擊文末鏈接進行查看。
優(yōu)秀的 ETL 工具
1、Apache Camel
Apache Camel 是一個非常強大的基于規(guī)則的路由以及媒介引擎,該引擎提供了一個基于 POJO 的企業(yè)應用模式(Enterprise Integration Patterns)的實現,你可以采用其異常強大且十分易用的 API (可以說是一種 Java 的領域定義語言 Domain Specific Language)來配置其路由或者中介的規(guī)則。 通過這種領域定義語言,你可以在你的 IDE 中用簡單的 Java Code 就可以寫出一個類型安全并具有一定智能的規(guī)則描述文件。
2、Apache Kafka
Apache Kafka 是一個開源的消息系統(tǒng),用 Scala 和 Java 寫成。該項目為處理實時數據提供了一個統(tǒng)一、高通量、低延時的平臺。有如下特性:
- 通過 O(1) 的磁盤數據結構提供消息的持久化,這種結構對于即使數以TB的消息存儲也能夠保持長時間的穩(wěn)定性能。
- 高吞吐量:即使是非常普通的硬件 kafka 也可以支持每秒數十萬的消息。
- 支持通過 kafka 服務器和消費機集群來分區(qū)消息。
- 支持 Hadoop 并行數據加載。
3、Apatar
Apatar 用 Java 編寫,是一個開源的數據抽取、轉換、 裝載(ETL)項目。模塊化的架構。提供可視化的 Job 設計器與映射工具,支持所有主流數據源,提供靈活的基于 GUI、服務器和嵌入式的部署選項。它具有符合 Unicode 的功能,可用于跨團隊集成數據,填充數據倉庫與數據市場,在連接到其他系統(tǒng)時在代碼少量或沒有代碼的情況下進行維護。
4、Heka
來自 Mozilla 的 Heka 是一個用來收集和整理來自多個不同源的數據的工具,通過對數據進行收集和整理后發(fā)送結果報告到不同的目標用于進一步分析。
主頁:http://hekad.readthedocs.io/en/v0.10.0/
5、Logstash
Logstash 是一個應用程序日志、事件的傳輸、處理、管理和搜索的平臺。你可以用它來統(tǒng)一對應用程序日志進行收集管理,提供 Web 接口用于查詢和統(tǒng)計。Logstash 現在是 ElasticSearch 家族成員之一。
主頁:https://www.elastic.co/products/logstash
6、Scriptella
Scriptella 是一個開源的 ETL (抽取-轉換-加載)工具和一個腳本執(zhí)行工具,采用 Java 開發(fā)。Scriptella 支持跨數據庫的 ETL 腳本,并且可以在單個的 ETL 文件中與多個數據源運行。Scriptella 可與任何 JDBC / ODBC 兼容的驅動程序集成,并提供與非 JDBC 數據源和腳本語言的互操作性的接口。它還可以與 Java EE,Spring,JMX,JNDI 和 JavaMail 集成。
7、Talend
Talend (踏藍) 是第一家針對的數據集成工具市場的 ETL(數據的提取 Extract、傳輸 Transform、載入Load)開源軟件供應商。Talend 以它的技術和商業(yè)雙重模式為 ETL 服務提供了一個全新的遠景。它打破了傳統(tǒng)的獨有封閉服務,提供了一個針對所有規(guī)模的公司的公開的,創(chuàng)新的,強大的靈活的軟件解決方案。最終,由于 Talend 的出現,數據整合方案不再被大公司所獨享。
8、Kettle
Kettle 是一款國外開源的 etl 工具,純 java 編寫,綠色無需安裝,數據抽取高效穩(wěn)定(數據遷移工具)。Kettle 中有兩種腳本文件,transformation 和 job,transformation 完成針對數據的基礎轉換,job 則完成整個工作流的控制。
ELT 初探
雖然 Stitch 也是一個 ETL 服務企業(yè),但其 CEO 在 TechTarget 雜志的訪談中也稱贊了 AWS Athena 服務,同時提出了從 ETL 轉向 ELT 的需要。
在他看來,“無 ETL”即 ETL 過程由提取(Extract),加載(Load),變換(Transform)代替,其中數據變換根據下游使用的需要而在 SQL 中進行,而不是在加載階段期間。他承認 ETL 公司來推廣 ELT 概念有點讓人匪夷所思,但他解釋了這么做的好處。
“使用 Athena,你可以從數據源中提取數據,經過少量或不加載預處理后進行加載。 這種風格的 ELT 是大多數使用案例的優(yōu)秀模型,因為它能產生更簡單的架構,使分析人員更好地了解原始數據的變換過程。”點此了解更多。
使用 ELT 方法,在提取完成之后,數據加載會立即開始,而不用等待“恰當的”數據變換操作。 轉換還可以在查詢時運行,比 ETL 更省時,因為 ETL 需要用戶等待轉換完成。 ELT 允許 BI 用戶和分析人員無限制地訪問整個原始數據,為用戶提供了更大的靈活性,使之能更好地支持該業(yè)務。