開源ETL工具 kettle的使用入門介紹

2021-08-20 02:40:23 字數 1847 閱讀 9661

首先,給大家介紹一寫關於etl的基本知識。 etl是由三個詞組成的。分別是extract, transform, load .也就是抽取,轉換和載入。在現代網際網路企業中使用時比較頻繁的,在商業智慧型bi中也是很受歡迎的。 常用的etl工具也有很多,比如infomatia, datastage, kettle, talend 等等。  有開源的也有商業的,不同的軟體之間在效能和學習使用成本等是有差別的。本文主要以kettle工具為主。版本:  kettle-pdi 7.0

kettle vs informatica

相似點:

•pentaho 和 informatica 都提供了大量的轉換步驟、指令碼功能,都

可以處理複雜的etl 轉換。

•通常情況下 informatica 比 kettle 更快。informatica 有下推優化,

快取查詢等提高效能的手段。但是如果你對 kettle 和資料庫有足夠

的了解,做一些調整,你可以提高 kettle 的速度,在一些情況下可

以達到甚至超過 informatica 的速度。

kettle  的優點:

•kettle 的易用性比 informatica 好,需要的培訓要少很多。

•kettle 不需要像 informatica 那樣大的前期投入。

•kettle 的外掛程式架構支援快速定製開發

informatica  的優點:

•informatica 的錯誤報告功能比 kettle 更友好,更容易定位錯誤。

kettle 通常只把異常丟擲,需要實施人員有更豐富的經驗。

•informatica 比 kettle 有更好的監控工具和負載均衡等企業級應用

功能,更適合大規模的etl 應用。

spoon.bat: 圖形介面方式啟動作業和轉換設計器。

pan.bat: 命令列方式執行轉換。

kitchen.bat: 命令列方式執行作業。

carte.bat: 啟動web服務,用於 kettle 的遠端執行或

集群執行。

encr.bat: 密碼加密

kettle 的 spoon 設計器用來設計轉換(transformation)

和 作業(job)。

•轉換主要是針對資料的各種處理,乙個轉換裡可以包

含多個步驟(step)。

•作業是比轉換更高一級的處理流程,乙個作業裡包括

多個作業項(job entry),乙個作業項代表了一項工

作,轉換也是乙個作業項。

svn:

使用者通過 spoon 建立的轉換、作業、資料庫連線等可以儲存在資源庫和 xml 檔案中。

• 轉換檔案以 ktr 為副檔名,作業檔案以 kjb 為副檔名

•資源庫可以是各種常見的資料庫。可以在 spoon 中

自動建立資源庫,資源庫預設使用者名稱和密碼是  admin/admin。

不過kettle 也是支援集群模式的,資源庫是方便了程式的管理,但是某些情況下,訪問資源比較慢,看個人情況使用決定。

4.1 輸入元件

輸入類步驟用來從外部獲取資料,可以獲取資料的資料來源包括,文字檔案(txt,csv,xml,json)資料庫、 excel 檔案等桌面檔案,自定義的資料等。對特殊資料來源和應用需求可以自定義輸入外掛程式。

4.2 轉換元件 

轉換類步驟是對資料進行各種形式轉換所用到的步驟。

例子: 字段選擇,  計算器。 增加常量

4.3 輸出元件

輸出步驟是輸出資料的步驟,常見的輸出包括 文字檔案輸出、表輸出等,可以根據應用的需求開發外掛程式以其他形式輸出

常用的是表輸出,文字檔案輸出,寫日誌輸出等。也可以輸出到關係型資料庫,hadoop output 等檔案系統。

下次繼續更新。 

開源ETL工具kettle 資料遷移

由於專案的需求,需要將資料從oracle遷移到mssql,不是簡單的資料複製,而是表結構和欄位名都不一樣,甚至需要處理編碼規範不一致的情況,如下圖所示 注意 oracle和mssql中的同名表的欄位名是不相同的 如果要是採用手工sql語句操作的話會很麻煩,需要考慮 oracle和mssql sql語...

ETL開源工具kettle中Job流程的理解

job流程 可執行執行緒,代表etl控制流中的一項邏輯任務。job節點將會順序執行,每個job節點會產生乙個結果,能作為別的分支上job節點的條件。jobentry節點 自定義外掛程式 代表著功能 hop連線 代表流程邏輯 result結果物件 流程job繼承執行緒thread類,就是乙個可執行執行...

八步學會資料遷移 ETL工具kettle使用方法

一 目的 將不同伺服器上的表合併到另外乙個伺服器上。例如 將伺服器1上的表a和伺服器2上的表b,合併到伺服器3上的表c 要求 表a需要被裁剪 去掉不必要的字段 表b需要增加一些字段 1 在伺服器3上的資料庫中新建一張表c 符合實際系統設計的字段 2 新建表輸入,連線伺服器1,通過獲取sql語句選擇需...