Kettle是一款國外開源的ETL工具,純java編寫,可以在Windows、Linux、unix上運行,數據抽取高效穩定。
Kettle 中文名稱叫水壺,該項目的主程序員MATT 希望把各種數據放到一個壺里,然后以一種指定的格式流出。
Pentaho Data Integration以Java開發,支持跨平臺運行,其特性包括:支持100%無編碼、拖拽方式開發ETL數據管道;可對接包括傳統數據庫、文件、大數據平臺、接口、流數據等數據源;支持ETL數據管道加入機器學習算法。
Pentaho Data Integration分為商業版與開源版,開源版的截止2021年1月的累計下載量達836萬,其中19%來自中國??。在中國,一般人仍習慣把Pentaho 數據 Integration的開源版稱為Kettle。
產生背景
廣泛利用內部數據(例如:ERP、CRM、POS、設備數據、日志)以及外部數據(行業數據、宏觀經濟數據、社交媒體、評論)來對現有業務做各樣分析以及對未來做預測,最終以數據驅動業務,已經是任何組織賴以生存的必要手段。然后,要使有價值的數據分析在組織內各層級管理人員的手機、Pad以及大屏呈現之前,數據必須先從各個源頭進行抽取(Extract),加載(Load)至數據湖(數據 Lake),然后需要對在大數據存儲里(例如:?Hadoop,S3,MongoDB)的數據各類加工,包括清洗(Cleanse)、把來自不同來源、不同格式的數據混合(Blend)、轉換(Transform),再把數據按照分析需求進行建模(Modeling)和聚合(Aggregation),或者在數據挖掘之前進行數據預備和特征工程(Data Preparation & Feature Engineering),最終數據被加載至數據倉庫或數據集市中。整個過程比30年前剛出現ETL的概念已經復雜了許多;再加上組織需要處理除了結構化數據(例如:傳統關系型數據庫),還包括非結構化數據(例如:日志、客戶評論、圖片),同時,各組織已不滿足于T+1的滯后分析而紛紛對數據進行更有價值的實時或近實時數據分析(real-時間 or near-real-time analysis),導致數據集成(數據 Integration)的復雜度大大提高。作為全球累計下載量超過835萬,源于開源的數據集成平臺??,Pentaho Data Integration平均每半年一次大版本升級,以應對數據集成不斷變化的需求。
介紹
Kettle這個ETL工具集,它允許你管理來自不同數據庫的數據,通過提供一個圖形化的用戶環境來描述你想做什么,而不是你想怎么做。
Kettle中有兩種腳本文件,transformation和job,transformation完成針對數據的基礎轉換,job則完成整個工作流的控制。
作為Pentaho的一個重要組成部分,現在在國內項目應用上逐漸增
多。
Kettle最早是一個開源的ETL工具,全稱為KDE?Extraction, 搬運作用, Transformation and Loading Environment。在2006年,Pentaho公司收購了Kettle項目,原Kettle項目發起人Matt Casters加入了Pentaho團隊,成為Pentaho套件數據集成架構師??,從此,Kettle成為企業級數據集成及商業智能套件Pentaho的主要組成部分,Kettle亦重命名為Pentaho 數據 Integration??。Pentaho公司于2015年被日立制作所Data Systems收購。??(日立制作所 Data Systems于2017年改名為Hitachi Vantara??)
運行平臺支持
kettle 8.2版本可以支持windows、Linux和mac os操作系統
主要功能
Pentaho Data Integration作為一個端對端的數據集成平臺,可以對多種數據源進行抽取(Extraction)、加載(Loading)、數據落湖(Data Lake Injection)、對數據進行各種清洗(Cleasing)、轉換(Transformation)、混合(Blending),并支持多維聯機分析處理(OLAP)和數據挖掘(數據 mining)。部分特色功能包括:
無代碼拖拽式構建數據管道
Pentaho采用拖拽組件、連線、配置的方式來構建數據管道,透過超過200個不同的組件??,用戶可以在不編寫一句代碼就能輕松完成對數據源讀取,對數據進行關聯、過濾、格式轉換、計算、統計、建模、挖掘、輸出到不同的數據目標。極大程度地降低開發技術門檻和有效減低開發和維護成本。
多數據源對接
關系型數據庫支持類型包括:AS/400,?DB2, 谷歌BigQuery,?Greenplum,?Hive,?Impala,?MS SQL Server,?MySQL,?Oracle數據庫,?PostgreSQL,?SAP, Snowflake, SparkSQL,?Sybase,?Teradata,?Vertica等??。大數據源支持包括:Avro, Cassanddra,?HBase,?HDFS,?MongoDB, ORC, Parquet,?Splunk等。文件格式支持包括:CSV, txt,?JSON,?Excel,XML等。流數據支持包括:AMPQ,?JMS,?Kafka, Kinesis,?MQTT,?其他數據源對接包括:HL7, S3,?SAS,賽富時, HCP,?REST等。
數據管道可視化
Pentaho Data Integration支持用戶在數據管道任何一個步驟對當前數據進行查看(Examine),并可以在線以表格和圖表(例如:柱狀圖、餅圖等)輸出步驟的數據,甚至可以支持不落地直接把任何一個步驟的數據以Java數據庫連接的方式提供給第三方應用訪問??。
模板化開發數據管道
在數據抽取的過程中,ETL工程師通常要從眾多不同的數據源把數據抽取到數倉的ODS層,或者到Hadoop的hdfs,整個過程的數據轉換邏輯比較簡單,但往往因為數據源很多而導致大量低價值重復開發工作,為了有效節省開發的時間和成本,Pentaho 數據 Integration提供了一個叫MDI的功能,MDI全稱是Metadata Injection元數據注入,用戶可以透過MDI把數據轉換模板化,然后把像數據表名、文件路徑、分隔符、字符集等等這些變量放在一個表或者文件里,然后利用MDI把這些變量注入數據轉換模板,Pentaho Data Integration就能夠自動生成所需要的數據轉換了??。這個功能為很多客戶節省了大量的開發時間。
可視化計劃任務
Pentaho 數據 Integration提供可視化方式配置任務計劃(Schedule),用戶可透過Spoon或網頁端的Pentaho User Console來配置和維護任務具體的執行時間、間隔、所使用的參數值、以及具體運行的服務器節點。用戶亦可以透過Spoon或Pentaho User Console查看任務計劃列表??;當然,用戶也可以透過Spoon或Pentaho User Console對任務執行情況進行實時監控。
深度Hadoop支持
Pentaho 數據 Integration針對Hadoop主流廠家預置專用的對接插件,支持的Hadoop版本包括Cloudera, Hortonworks, AWS EMR, 谷歌 Dataproc等,用戶除了可以透過插件輕松對接Hadoop集群的數據源(HDFS,?Hive,?HBase,?Impala等)Pentaho還提供與Kerberos、Sentry和Ranger等Hadoop企業級安全機制對接,以滿足企業安全要求;另外,Pentaho 數據 Integration的Pentaho?MapReduce提供用戶以無編碼方式定義MapReduce任務;同時,用戶亦可以在作業中執行Apache Sqoop、Pig、MapReduce、Oozie和Spark任務。?
數據任務下壓Spark集群
對于很多使用Hadoop的企業,往往因為數據量大,考慮到性能,會以腳本的方式來在集群里直接進行數據轉換,我們一般叫這個做ELT(Extract-Load-Transform),就是先把數據加載到Hadoop,再在Hadoop集群里進行轉換。為了讓用戶仍然能夠透過Pentaho 數據 Integration簡單的拖拽方式構建數據轉換管道,同時又可以讓數據在集群里進行In-Cluster轉換,Pentaho提供了把數據轉換任務下壓到Spark來執行的AEL(Adaptive Execution Layer)功能,搭建好的數據管道會被AEL轉成Spark任務來執行??,這樣數據就不需要離開集群,而是在集群里透過Spark強大的分布式處理能力來進行處理。
最新版的Pentaho9.1預置了超過20種數據挖掘算法類的轉換步驟,用戶可以輕松把把機器學習集成到數據管道里,用來做數據模型訓練和進行預測分析。預置算法包括:決策樹、深度學習、線性回歸、邏輯回歸、Naive貝爾斯、隨機森林等等,用戶也可以利用Pentaho 數據 Integration作數據預備,然后把數據以dataframe的方式輸入到Python或R中進行模型訓練或預測。
版本記錄
運行環境
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
產品家族
Kettle家族目前包括4個產品:Spoon、pan、CHEF、Kitchen。
SPOON 允許你通過圖形界面來設計ETL轉換過程(Transformation)。
PAN 允許你批量運行由Spoon設計的ETL轉換 (例如使用一個時間調度器)。Pan是一個后臺執行的程序,沒有圖形界面。
CHEF 允許你創建任務(Job)。任務通過允許每個轉換,任務,腳本等等,更有利于自動化更新數據倉庫的復雜工作。任務通過允許每個轉換,任務,腳本等等。任務將會被檢查,看看是否正確地運行了。
KITCHEN 允許你批量使用由Chef設計的任務 (例如使用一個時間調度器)。KITCHEN也是一個后臺運行的程序。
參考資料 >
Kettle.Kettle.2021-12-13