-
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
- 上線時間
- 2006年6月
- 最近更新時間
- 2020年12月
- 軟件語言
- 英語、簡體中文、日語等13國語言
- 開發商
- Hitachi Vantara [4]
- 軟件授權
- 商業版與開源版
- 軟件版本
- 9.1
- 軟件大小
- 2.1 GB
- 主要組件
- 服務器端(Pentaho Server, Carte, 資源庫)客户端(Pentaho User Console, Spoon, Pan, Kitchen等)
目錄
- 1 產生背景
- 2 發展歷程
- 3 主要功能
- ▪ 無代碼拖拽式構建數據管道
- ▪ 多數據源對接
- ▪ 數據管道可視化
- ▪ 模板化開發數據管道
- ▪ 可視化計劃任務
- ▪ 深度Hadoop支持
- ▪ 數據任務下壓Spark集羣
- ▪ 數據挖掘與機器學習支持
- 4 版本記錄
- 5 運行環境
Kettle產生背景
廣泛利用內部數據(例如:ERP、CRM、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平均每半年一次大版本升級,以應對數據集成不斷變化的需求。
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採用拖拽組件、連線、配置的方式來構建數據管道,通過超過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模板化開發數據管道
在數據抽取的過程中,ETL工程師通常要從眾多不同的數據源把數據抽取到數倉的ODS層,或者到Hadoop的HDFS,整個過程的數據轉換邏輯比較簡單,但往往因為數據源很多而導致大量低價值重複開發工作,為了有效節省開發的時間和成本,Pentaho Data Integration提供了一個叫MDI的功能,MDI全稱是Metadata Injection元數據注入,用户可以透過MDI把數據轉換模板化,然後把像數據表名、文件路徑、分隔符、字符集等等這些變量放在一個表或者文件裏,然後利用MDI把這些變量注入數據轉換模板,Pentaho Data Integration就能夠自動生成所需要的數據轉換了
[9]
。這個功能為很多客户節省了大量的開發時間。
Kettle可視化計劃任務
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集羣
對於很多使用Hadoop的企業,往往因為數據量大,考慮到性能,會以腳本的方式來在集羣裏直接進行數據轉換,我們一般叫這個做ELT(Extract-Load-Transform),就是先把數據加載到Hadoop,再在Hadoop集羣裏進行轉換。為了讓用户仍然能夠透過Pentaho Data Integration簡單的拖拽方式構建數據轉換管道,同時又可以讓數據在集羣裏進行In-Cluster轉換,Pentaho提供了把數據轉換任務下壓到Spark來執行的AEL(Adaptive Execution Layer)功能,搭建好的數據管道會被AEL轉成Spark任務來執行
[12]
,這樣數據就不需要離開集羣,而是在集羣裏透過Spark強大的分佈式處理能力來進行處理。
Kettle數據挖掘與機器學習支持
最新版的Pentaho9.1預置了超過20種數據挖掘算法類的轉換步驟,用户可以輕鬆把把機器學習集成到數據管道里,用來做數據模型訓練和進行預測分析。預置算法包括:決策樹、深度學習、線性迴歸、邏輯迴歸、Naive貝爾斯、隨機森林等等,用户也可以利用Pentaho Data Integration作數據預備,然後把數據以dataframe的方式輸入到Python或R中進行模型訓練或預測。
Kettle版本記錄
時間 | 主版本號 | 主要變化 |
2006年6月 | PDI 2.3 | |
2007年11月 | PDI 3.0 | |
2009年4月 | PDI 3.2 | |
2010年6月 | PDI 4.0 | |
2013年11月 | PDI 5.0 | |
2015年12月 | PDI 6.0 | |
2016年11月 | PDI 7.0 | |
2017年4月 | PDI 7.1 | |
2017年11月 | PDI 8.0 | |
2018年6月 | PDI 8.3 | |
2020年1月 | PDI 9.0 | |
2020年10月 | PDI 9.1 |
Kettle運行環境
Pentaho Data Integration開發客户端(Spoon)支持:Windows, Ubuntu Desktop, MacOS
- 參考資料
-
- 1. Maria Carina Roldan.Learning Pentaho Data Integration 8 CE - Third Edition:Packt Publishing,2017
- 2. Pentaho Data Integration - Pentaho Documentation .Pentaho官方幫助文檔.2020-09-26[引用日期2021-02-03]
- 3. Hitachi Data Systems Completes Pentaho Acquisition | Hitachi Vantara .Hitachi Vantara官網.2015-06-04[引用日期2021-02-01]
- 4. Hitachi Data Systems Federal Changes Name | Business Wire .Hitachi Data Systems Federal Changes Name.2017-10-16[引用日期2021-02-03]
- 5. Pentaho from Hitachi Vantara Download Statistics by Country: All Files .Sourceforge Pentaho社區版官方下載網頁.2021-01-31[引用日期2021-02-03]
- 6. Transformation step reference .Pentaho官方幫助文檔.2020-10-10[引用日期2021-02-01]
- 7. JDBC drivers reference .Pentaho官方幫助文檔.2021-01-23[引用日期2021-02-01]
- 8. Pentaho Data Services - Pentaho Documentation .Pentaho官方幫助文檔.2020-01-23[引用日期2021-02-01]
- 9. ETL metadata injection - Pentaho Documentation .Pentaho官方幫助文檔.2021-01-23[引用日期2021-02-01]
- 10. Schedule perspective in the PDI client .Pentaho官方幫助文檔.2021-01-23[引用日期2021-02-01]
- 11. Use Hadoop with Pentaho - Pentaho Documentation .Pentaho官方幫助文檔.2021-01-23[引用日期2021-02-01]
- 12. Adaptive Execution Layer - Pentaho Documentation .Pentaho官方幫助文檔.2021-01-23[引用日期2021-02-01]
- 13. What's New in Pentaho 7.0 - Pentaho Documentation .Pentaho官方幫助文檔.2016-11-01[引用日期2021-02-03]
- 14. What's New in Pentaho 7.1 - Pentaho Documentation .Pentaho官方幫助文檔.2018-08-31[引用日期2021-02-03]
- 15. What's New in Pentaho 8.0 - Pentaho Documentation .Pentaho官方幫助文檔.2017-11-14[引用日期2021-02-03]
- 16. What's new in Pentaho 8.3 - Pentaho Documentation .Pentaho官方幫助文檔.2020-10-15[引用日期2021-02-03]
- 17. What's new in Pentaho 9.0 - Pentaho Documentation .Pentaho官方幫助文檔.2020-02-14[引用日期2021-02-03]
- 18. What's new in Pentaho 9.1 - Pentaho Documentation .Pentaho官方幫助文檔.2020-10-10[引用日期2021-02-03]
- 收起