複製鏈接
請複製以下鏈接發送給好友

Kettle

(數據集成及BI分析套件Pentaho的開源ETL組件)

鎖定
Kettle最早是一個開源的ETL工具,全稱為KDE Extraction, Transportation, Transformation and Loading Environment。在2006年,Pentaho公司收購了Kettle項目,原Kettle項目發起人Matt Casters加入了Pentaho團隊,成為Pentaho套件數據集成架構師 [1]  ;從此,Kettle成為企業級數據集成商業智能套件Pentaho的主要組成部分,Kettle亦重命名為Pentaho Data Integration [1-2]  。Pentaho公司於2015年被Hitachi Data Systems收購。 [3]  (Hitachi Data Systems於2017年改名為Hitachi Vantara [4] 
Pentaho Data Integration以Java開發,支持跨平台運行,其特性包括:支持100%無編碼、拖拽方式開發ETL數據管道;可對接包括傳統數據庫、文件、大數據平台、接口、流數據數據源;支持ETL數據管道加入機器學習算法。
Pentaho Data Integration分為商業版與開源版,開源版的截止2021年1月的累計下載量達836萬,其中19%來自中國 [5]  。在中國,一般人仍習慣把Pentaho Data Integration的開源版稱為Kettle。
軟件名稱
Pentaho Data Integration
上線時間
2006年6月
最近更新時間
2020年12月
軟件語言
英語、簡體中文、日語等13國語言
開發商
Hitachi Vantara [4] 
軟件授權
商業版與開源版
軟件版本
9.1
軟件大小
2.1 GB
主要組件
服務器端(Pentaho Server, Carte, 資源庫)客户端(Pentaho User Console, Spoon, Pan, Kitchen等)

Kettle產生背景

廣泛利用內部數據(例如:ERPCRM、POS、設備數據、日誌)以及外部數據(行業數據、宏觀經濟數據、社交媒體、評論)來對現有業務做各樣分析以及對未來做預測,最終以數據驅動業務,已經是任何組織賴以生存的必要手段。然後,要使有價值的數據分析在組織內各層級管理人員的手機、Pad以及大屏呈現之前,數據必須先從各個源頭進行抽取(Extract),加載(Load)至數據湖(Data Lake),然後需要對在大數據存儲裏(例如: Hadoop,S3,MongoDB)的數據各類加工,包括清洗(Cleanse)、把來自不同來源、不同格式的數據混合(Blend)、轉換(Transform),再把數據按照分析需求進行建模(Modeling)和聚合(Aggregation),或者在數據挖掘之前進行數據預備和特徵工程(Data Preparation & Feature Engineering),最終數據被加載至數據倉庫數據集市中。整個過程比30年前剛出現ETL的概念已經複雜了許多;再加上組織需要處理除了結構化數據(例如:傳統關係型數據庫),還包括非結構化數據(例如:日誌、客户評論、圖片),同時,各組織已不滿足於T+1的滯後分析而紛紛對數據進行更有價值的實時或近實時數據分析(real-time or near-real-time analysis),導致數據集成(Data Integration)的複雜度大大提高。作為全球累計下載量超過835萬,源於開源的數據集成平台 [5]  ,Pentaho Data Integration平均每半年一次大版本升級,以應對數據集成不斷變化的需求。
數據集成(Data Integration)的應用示意圖 數據集成(Data Integration)的應用示意圖

Kettle發展歷程

Kettle最早是一個開源的ETL工具,全稱為KDE Extraction, Transportation, Transformation and Loading Environment。在2006年,Pentaho公司收購了Kettle項目,原Kettle項目發起人Matt Casters加入了Pentaho團隊,成為Pentaho套件數據集成架構師 [1]  ,從此,Kettle成為企業級數據集成商業智能套件Pentaho的主要組成部分,Kettle亦重命名為Pentaho Data Integration [1-2]  。Pentaho公司於2015年被Hitachi Data Systems收購。 [3]  (Hitachi Data Systems於2017年改名為Hitachi Vantara [4] 

Kettle主要功能

Pentaho Data Integration作為一個端對端的數據集成平台,可以對多種數據源進行抽取(Extraction)、加載(Loading)、數據落湖(Data Lake Injection)、對數據進行各種清洗(Cleaning)、轉換(Transformation)、混合(Blending),並支持多維聯機分析處理(OLAP)和數據挖掘(Data mining)。部分特色功能包括:

Kettle無代碼拖拽式構建數據管道

Pentaho數據管道示例 Pentaho數據管道示例
Pentaho採用拖拽組件、連線、配置的方式來構建數據管道,通過超過200個不同的組件 [6]  ,用户可以在不編寫一句代碼就能輕鬆完成對數據源讀取,對數據進行關聯、過濾、格式轉換、計算、統計、建模、挖掘、輸出到不同的數據目標。極大程度地降低開發技術門檻和有效減低開發和維護成本。

Kettle多數據源對接

多數據源接入支持 多數據源接入支持
關係型數據庫支持類型包括:AS/400, DB2, Google BigQuery, Greenplum, Hive, Impala, MS SQL Server, MySQL, Oracle, PostgreSQL, SAP, Snowflake, SparkSQL, Sybase, Teradata, Vertica [7] 大數據源支持包括:Avro, Cassanddra, HBase, HDFS, MongoDB, ORC, Parquet, Splunk等。文件格式支持包括:CSV, TXT, JSON, Excel, XML等。流數據支持包括:AMQP, JMS, Kafka, Kinesis, MQTT, 其他數據源對接包括:HL7, S3, SAS, Salesforce, HCP, REST等。

Kettle數據管道可視化

Pentaho Data Integration支持用户在數據管道任何一個步驟對當前數據進行查看(Examine),並可以在線以表格和圖表(例如:柱狀圖、餅圖等)輸出步驟的數據,甚至可以支持不落地直接把任何一個步驟的數據以JDBC的方式提供給第三方應用訪問 [8] 

Kettle模板化開發數據管道

MDI模板化開發數據管道示意圖 MDI模板化開發數據管道示意圖
數據抽取的過程中,ETL工程師通常要從眾多不同的數據源把數據抽取到數倉的ODS層,或者到HadoopHDFS,整個過程的數據轉換邏輯比較簡單,但往往因為數據源很多而導致大量低價值重複開發工作,為了有效節省開發的時間和成本,Pentaho Data Integration提供了一個叫MDI的功能,MDI全稱是Metadata Injection元數據注入,用户可以透過MDI把數據轉換模板化,然後把像數據表名、文件路徑、分隔符字符集等等這些變量放在一個表或者文件裏,然後利用MDI把這些變量注入數據轉換模板,Pentaho Data Integration就能夠自動生成所需要的數據轉換了 [9]  。這個功能為很多客户節省了大量的開發時間。

Kettle可視化計劃任務

Schedule配置界面 Schedule配置界面
Pentaho Data Integration提供可視化方式配置任務計劃(Schedule),用户可透過Spoon或網頁端的Pentaho User Console來配置和維護任務具體的執行時間、間隔、所使用的參數值、以及具體運行的服務器節點。用户亦可以透過Spoon或Pentaho User Console查看任務計劃列表 [10]  ;當然,用户也可以透過Spoon或Pentaho User Console對任務執行情況進行實時監控

Kettle深度Hadoop支持

Pentaho Data Integration針對Hadoop主流廠家預置專用的對接插件,支持的Hadoop版本包括Cloudera, Hortonworks, AWS EMR, Google Dataproc等,用户除了可以透過插件輕鬆對接Hadoop集羣的數據源(HDFS, Hive, HBase, Impala等)Pentaho還提供與Kerberos、Sentry和Ranger等Hadoop企業級安全機制對接,以滿足企業安全要求;另外,Pentaho Data Integration的Pentaho MapReduce提供用户以無編碼方式定義MapReduce任務;同時,用户亦可以在作業中執行Sqoop、Pig、MapReduce、Oozie和Spark任務。 [11] 

Kettle數據任務下壓Spark集羣

AEL數據任務下壓示意圖 AEL數據任務下壓示意圖
對於很多使用Hadoop的企業,往往因為數據量大,考慮到性能,會以腳本的方式來在集羣裏直接進行數據轉換,我們一般叫這個做ELT(Extract-Load-Transform),就是先把數據加載到Hadoop,再在Hadoop集羣裏進行轉換。為了讓用户仍然能夠透過Pentaho Data Integration簡單的拖拽方式構建數據轉換管道,同時又可以讓數據在集羣裏進行In-Cluster轉換,Pentaho提供了把數據轉換任務下壓到Spark來執行的AEL(Adaptive Execution Layer)功能,搭建好的數據管道會被AEL轉成Spark任務來執行 [12]  ,這樣數據就不需要離開集羣,而是在集羣裏透過Spark強大的分佈式處理能力來進行處理。

Kettle數據挖掘與機器學習支持

PDI預置算法以及數據挖掘應用場景 PDI預置算法以及數據挖掘應用場景
最新版的Pentaho9.1預置了超過20種數據挖掘算法類的轉換步驟,用户可以輕鬆把把機器學習集成到數據管道里,用來做數據模型訓練和進行預測分析。預置算法包括:決策樹深度學習線性迴歸、邏輯迴歸、Naive貝爾斯、隨機森林等等,用户也可以利用Pentaho Data Integration作數據預備,然後把數據以dataframe的方式輸入到Python或R中進行模型訓練或預測。

Kettle版本記錄

PDI (Kettle) 主要版本歷史
時間
主版本號
主要變化
2006年6月
PDI 2.3
Kettle被Pentaho收購後第一個版本 [1] 
2007年11月
PDI 3.0
產品整體重新設計,性能提升 [1] 
2009年4月
PDI 3.2
加入新功能、可視化與性能優化 [1] 
2010年6月
PDI 4.0
加入企業級功能,例如:版本管理 [1] 
2013年11月
PDI 5.0
優化大數據支持、轉換步驟負載均衡、作業事務性支持、作業斷點重啓 [1] 
2015年12月
PDI 6.0
Pentaho Data Service,元數據注入(Metadata Injection),數據血緣追蹤 [1] 
2016年11月
PDI 7.0
數據管道可視化、Hadoop安全性支持、Spark支持優化、資源庫功能完善、元數據注入功能優化 [13] 
2017年4月
PDI 7.1
任務下壓至Spark集羣運行(Adaptive Execution Layer) [14] 
2017年11月
PDI 8.0
實時數據對接、AEL優化、大數據格式支持優化 [15] 
2018年6月
PDI 8.3
數據源支持優化:Snowflake, RedShift, Kinesis, HCP等 [16] 
2020年1月
PDI 9.0
多Hadoop集羣支持、大型機(Mainframe)數據對接支持、S3支持優化 [17] 
2020年10月
PDI 9.1
Google Dataproc支持、數據目錄Lumada Data Catalog對接 [18] 

Kettle運行環境

Pentaho Data Integration服務器端支持:Windows Server, CentOS, RHEL, Ubuntu
Pentaho Data Integration開發客户端(Spoon)支持:Windows, Ubuntu Desktop, MacOS
Pentaho User Console(瀏覽器端)支持:Internet Explorer, Chrome, Firefox, Safari, Edge
參考資料
展開全部 收起