1. 程式人生 > >【Kettle】4、SQL SERVER到SQL SERVER數據轉換抽取實例

【Kettle】4、SQL SERVER到SQL SERVER數據轉換抽取實例

serve 端口號 alt 指定 映射 pac 自動獲取 查詢語句 維護

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、數據抽取轉換

  在【核心對象

】下可顯示在轉換中能使用的所有組件。在【輸入】中找到表輸入,雙擊出現到設計頁面中;在【輸出】下,找到表輸出,把空間往空白處拖入即可;然後點住shift鍵,左鍵連接兩者之間的關系。

  技術分享

  A.表輸入:雙擊表輸入控件,系統會彈出表輸入空間的詳細內容。

  技術分享

  說明:

    數據庫連接:DB連接下的連接,這裏選擇就可以

    SQL:編寫查詢源數據SQL腳本,可以通過“獲取SQL查詢語句…”獲取

    替換SQL語句裏的變量:如果在查詢條件裏使用了變量,需勾選   

    從步驟插入數據:默認

    執行每一行:默認

    記錄數量限制:如果為0,則預覽時無數據

    預覽: 如果無法確定SQL語句是否正常時可以通過【預覽

】來查看SQL語句是否正確。

  B.表輸出:主選項

  技術分享

  說明:

    數據庫連接:DB連接下的連接數據源,這裏選擇就可以

    目標表:選擇數據需要插入的數據表

    提交記錄數量:每次插入時提交的數量

    裁剪表:如果選中以後,每次都會把目標表的內容清空,然後再插入

    指定數據庫字段:表輸入的字段和表輸出的字段需選擇映射關系

  表輸出:數據庫字段,在這裏可以選擇字段的映射關系。

  技術分享

  說明:

    獲取字段:會自動獲取字段的映射關系

    輸入字段映射:需手動維護字段的映射關系

    SQL:點擊SQL會有選項;執行:本人暫未點擊過

  完成了表輸入和表輸出的連接後,可點擊左上角的三角號執行下,在下方可查看執行日誌

  技術分享

  技術分享

  技術分享

  說明:

    根據日誌可以查看出每個步驟執行的記錄數、讀、寫、輸入、輸出、更新、拒絕、錯誤、激活、時間、速度。可根據此處分析當前轉換運行效率而斷定轉換是否需要進行優化。

總結:

1、 在運行轉換時,當前轉換是處於並發狀態,如果有多個表輸入則會同時運行。

2、 在設計轉換時最好是一個數據流,不要一個轉換有多條數據流;如果有多條數據流則有可能發生鎖表問題。

 

  

【Kettle】4、SQL SERVER到SQL SERVER數據轉換抽取實例