首先,給大家介紹一寫關於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語句選擇需...