ETL笤成,是英文 Extract-Transform-Load 的縮寫乏盐,用來描述將數(shù)據(jù)從來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)抵碟、加載(load)至目的端的過程翩剪。ETL 是構(gòu)建數(shù)據(jù)倉庫的重要一環(huán),用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù)猖凛,經(jīng)過數(shù)據(jù)清洗,最終按照預先定義好的數(shù)據(jù)倉庫模型盏缤,將數(shù)據(jù)加載到數(shù)據(jù)倉庫中去砰蠢。
我們在下方列出了 7 款開源的 ETL 工具,并討論了從 ETL 轉(zhuǎn)向“無 ETL”的過程唉铜,因為 ELT 正迅速成為現(xiàn)代數(shù)據(jù)和云環(huán)境的終極過程台舱。
注:原文包含 11 項 ETL 工具,本文提取了其中開源的 7 項潭流,如需對另外 4 項進行了解竞惋,可點擊文末鏈接進行查看。
優(yōu)秀的 ETL 工具
1
Apache Camel
Apache Camel 是一個非常強大的基于規(guī)則的路由以及媒介引擎灰嫉,該引擎提供了一個基于 POJO 的企業(yè)應用模式(Enterprise Integration Patterns)的實現(xiàn)拆宛,你可以采用其異常強大且十分易用的 API (可以說是一種 Java 的領(lǐng)域定義語言 Domain Specific Language)來配置其路由或者中介的規(guī)則。 通過這種領(lǐng)域定義語言讼撒,你可以在你的 IDE 中用簡單的 Java Code 就可以寫出一個類型安全并具有一定智能的規(guī)則描述文件浑厚。
主頁:http://camel.apache.org/
2
Apache Kafka
Apache Kafka 是一個開源的消息系統(tǒng),用 Scale 和 Java 寫成根盒。該項目為處理實時數(shù)據(jù)提供了一個統(tǒng)一钳幅、高通量、低延時的平臺郑象。有如下特性:
通過 O(1) 的磁盤數(shù)據(jù)結(jié)構(gòu)提供消息的持久化贡这,這種結(jié)構(gòu)對于即使數(shù)以TB的消息存儲也能夠保持長時間的穩(wěn)定性能。
高吞吐量:即使是非常普通的硬件 kafka 也可以支持每秒數(shù)十萬的消息厂榛。
支持通過 kafka 服務器和消費機集群來分區(qū)消息盖矫。
支持 Hadoop 并行數(shù)據(jù)加載。
3
Apatar
Apatar 用 Java 編寫击奶,是一個開源的數(shù)據(jù)抽取辈双、轉(zhuǎn)換、 裝載(ETL)項目柜砾。模塊化的架構(gòu)湃望。提供可視化的 Job 設計器與映射工具,支持所有主流數(shù)據(jù)源痰驱,提供靈活的基于 GUI证芭、服務器和嵌入式的部署選項。它具有符合 Unicode 的功能担映,可用于跨團隊集成數(shù)據(jù)废士,填充數(shù)據(jù)倉庫與數(shù)據(jù)市場,在連接到其他系統(tǒng)時在代碼少量或沒有代碼的情況下進行維護蝇完。
主頁:http://apatar.com/
4
Heka
來自 Mozilla 的 Heka 是一個用來收集和整理來自多個不同源的數(shù)據(jù)的工具官硝,通過對數(shù)據(jù)進行收集和整理后發(fā)送結(jié)果報告到不同的目標用于進一步分析矗蕊。
主頁:http://hekad.readthedocs.io/en/v0.10.0/
5
Logstash
Logstash 是一個應用程序日志、事件的傳輸氢架、處理傻咖、管理和搜索的平臺。你可以用它來統(tǒng)一對應用程序日志進行收集管理岖研,提供 Web 接口用于查詢和統(tǒng)計卿操。Logstash 現(xiàn)在是 ElasticSearch 家族成員之一。
主頁:https://www.elastic.co/products/logstash
6
Scriptella
Scriptella 是一個開源的 ETL (抽取-轉(zhuǎn)換-加載)工具和一個腳本執(zhí)行工具孙援,采用 Java 開發(fā)硬纤。Scriptella 支持跨數(shù)據(jù)庫的 ETL 腳本,并且可以在單個的 ETL 文件中與多個數(shù)據(jù)源運行赃磨。Scriptella 可與任何 JDBC / ODBC 兼容的驅(qū)動程序集成,并提供與非 JDBC 數(shù)據(jù)源和腳本語言的互操作性的接口洼裤。它還可以與 Java EE邻辉,Spring,JMX腮鞍,JNDI 和 JavaMail 集成值骇。
主頁:http://scriptella.org/
7
Talend
Talend (踏藍) 是第一家針對的數(shù)據(jù)集成工具市場的 ETL(數(shù)據(jù)的提取 Extract、傳輸 Transform移国、載入Load)開源軟件供應商吱瘩。Talend 以它的技術(shù)和商業(yè)雙重模式為 ETL 服務提供了一個全新的遠景。它打破了傳統(tǒng)的獨有封閉服務迹缀,提供了一個針對所有規(guī)模的公司的公開的使碾,創(chuàng)新的,強大的靈活的軟件解決方案祝懂。最終票摇,由于 Talend 的出現(xiàn),數(shù)據(jù)整合方案不再被大公司所獨享砚蓬。
主頁:http://www.talend.com/
ELT 初探
雖然 Stitch 也是一個 ETL 服務企業(yè)矢门,但其 CEO 在 TechTarget 雜志的訪談中也稱贊了 AWS Athena 服務,同時提出了從 ETL 轉(zhuǎn)向 ELT 的需要灰蛙。
在他看來祟剔,“無 ETL”即 ETL 過程由提取(Extract)摩梧,加載(Load)物延,變換(Transform)代替,其中數(shù)據(jù)變換根據(jù)下游使用的需要而在 SQL 中進行障本,而不是在加載階段期間教届。他承認 ETL 公司來推廣 ELT 概念有點讓人匪夷所思响鹃,但他解釋了這么做的好處。
“使用 Athena案训,你可以從數(shù)據(jù)源中提取數(shù)據(jù)买置,經(jīng)過少量或不加載預處理后進行加載。 這種風格的 ELT 是大多數(shù)使用案例的優(yōu)秀模型强霎,因為它能產(chǎn)生更簡單的架構(gòu)忿项,使分析人員更好地了解原始數(shù)據(jù)的變換過程〕俏瑁”點此了解更多轩触。
使用 ELT 方法,在提取完成之后家夺,數(shù)據(jù)加載會立即開始脱柱,而不用等待“恰當?shù)摹睌?shù)據(jù)變換操作。 轉(zhuǎn)換還可以在查詢時運行拉馋,比 ETL 更省時榨为,因為 ETL 需要用戶等待轉(zhuǎn)換完成。 ELT 允許 BI 用戶和分析人員無限制地訪問整個原始數(shù)據(jù)煌茴,為用戶提供了更大的靈活性随闺,使之能更好地支持該業(yè)務。