【Kettle】4、SQL SERVER到SQL SERVER數據轉換抽取實例
1、系統版本信息
System:Windows旗艦版 Service Pack1
Kettle版本:6.1.0.1-196
JDK版本:1.8.0_72
2、連接數據庫
本次實例連接數據庫時使用全局變量。
2.1 創建新轉換:spoon啟動後,點擊Ctrl+N創建新轉換
2.2 在新轉換界面中,右鍵點擊DB連接,系統會彈出【數據庫連接】界面。
windows系統環境下,可用${}獲取變量的內容。
說明:
連接名稱:配置數據源使用名稱。(必填)
主機名稱:數據庫主機IP地址,此處演示使用本地IP(Localhost)地址或用127.0.0.1也可以。(必填)
數據庫名稱:數據庫實例名稱。(必填)
端口號:數據庫使用端口號。MS SQL Server默認1433,Oracle默認1521。(必填)
用戶名:登錄數據庫用戶。(必填)
密碼:登錄數據庫對應用戶的密碼。(必填)
2.3 連接完成後,在DB連接下可看到完成的數據庫連接。右鍵點擊分享,可生成sharp.xml文件,同時在kettle.properties文件中配置全局變量。
生成的sharp.xml文件截圖
sharp.xml文件部分內容截圖。
kettle.properties部分內容截圖。
3、數據抽取轉換
在【核心對象
A.表輸入:雙擊表輸入控件,系統會彈出表輸入空間的詳細內容。
說明:
數據庫連接:DB連接下的連接,這裏選擇就可以
SQL:編寫查詢源數據SQL腳本,可以通過“獲取SQL查詢語句…”獲取
替換SQL語句裏的變量:如果在查詢條件裏使用了變量,需勾選
從步驟插入數據:默認
執行每一行:默認
記錄數量限制:如果為0,則預覽時無數據
預覽: 如果無法確定SQL語句是否正常時可以通過【預覽
B.表輸出:主選項
說明:
數據庫連接:DB連接下的連接數據源,這裏選擇就可以
目標表:選擇數據需要插入的數據表
提交記錄數量:每次插入時提交的數量
裁剪表:如果選中以後,每次都會把目標表的內容清空,然後再插入
指定數據庫字段:表輸入的字段和表輸出的字段需選擇映射關系
表輸出:數據庫字段,在這裏可以選擇字段的映射關系。
說明:
獲取字段:會自動獲取字段的映射關系
輸入字段映射:需手動維護字段的映射關系
SQL:點擊SQL會有選項;執行:本人暫未點擊過
完成了表輸入和表輸出的連接後,可點擊左上角的三角號執行下,在下方可查看執行日誌
說明:
根據日誌可以查看出每個步驟執行的記錄數、讀、寫、輸入、輸出、更新、拒絕、錯誤、激活、時間、速度。可根據此處分析當前轉換運行效率而斷定轉換是否需要進行優化。
總結:
1、 在運行轉換時,當前轉換是處於並發狀態,如果有多個表輸入則會同時運行。
2、 在設計轉換時最好是一個數據流,不要一個轉換有多條數據流;如果有多條數據流則有可能發生鎖表問題。
【Kettle】4、SQL SERVER到SQL SERVER數據轉換抽取實例