SQL Server BI Step by Step SSIS 4 —合并資料3

來源:互聯網
上載者:User

     我們已經介紹了三種方法來實現資料流源和資料庫資料的合并,也就是Excel中的資料和資料庫裡面的資料進行同步,存在的資料進行更新操作,不存在的添加資料,另外還可以擴充為,如果資料庫為的資料在Excel資料來源中不存在,則執行刪除操作.接下來我們來介紹其它的方法來實現這樣的目標.
     我們在合并資料1中曾經介紹過,直接通過Merge和Merge Jone是無法直接實現的,不過我們可以通過變通的方法實現.首先我們建立一個包MergeDataMerge,像之前一樣,象上次一樣,準備控制流程,變數和連線管理員.其實前面和合并資料1中的MergeData2一樣,將Excel資料來源和資料庫表資料根據ProductNumber欄位進行合并.
    

     這裡我們選的是完全外部串連,這樣才能完全合并兩邊的資料.當一方資料沒有匹配的資料時,有NULL代替.所以我們直接根據合并後的ProductNumber和NewProductNumber 就可以直接這行資料應該對應的是添加,更新,還是刪除.在Merge Join組件下面,我們添加Conditional Split組件,這個組件來判斷對於不同的情況的分支:
    

      很簡單,當行中對應的ProductNumber為NULL時,說明沒有從資料庫時面查到匹配的資料,所以這條資料應該進行新增操作,當NewProductNumber為NULL時,說明Excel資料來源中不存在資料庫中ProductNumber對應的資料,所以此條資料應該進行刪除,最後,如果兩個ProductNumber相同,則應該進行更新操作.這裡需要注意的是,一定要把兩個判斷ISNULL的條件放在前面,因為我們在第三個裡面用到了TRIM,如果為NULL值時,會有錯誤發生.
     

   接下來我們介紹一下使用SCD Component怎麼來實現這個,我們先建一個包MergeDataSCDComponent,同樣,準備好其它的資源,然後拖動Slowly Changing Dimension組件進來,雙擊這個控制項進行設定,我們會發現,這類似於一個安裝程式,可以一步一步的設定,點擊下一步,首先我們需要選擇資料連線管理器,然後再設定業務鍵,在這裡我們設定ProductNumber列作為業務鍵:
   

     再點擊下一步,在這裡我們可以選擇資料來源中的列,然後設定此列的更改類型,分為固定,變化還是曆史,在左面已經列中不同的類型的詳細說明:
   

   可以看到這個組件很強大,可以針對不同的更改類型做出這麼多的區分,我們再點擊下一步,看到在這裡可以設定,如果固定類型的屬性更改時是否轉換失敗,變化的屬性更改時,是否更改所有的匹配記錄.
  
   我們直接下一步,然後完成整個配置,可以看到,Slowly Changing Dimension下面多出來了三個分支,就象我們前幾次實現的一樣,只不過這次是全部配置完成的.雖然下面的其中的兩個組件名顯示的是英文(估計是沒有對應的中文翻譯),不過還是相應強大的.
    
     我們來看一下插入目標這個組件,自動產生的只是一個OLE DB目標組件,然後已經把欄位對應好了,而且對於一些特殊的列已經自動進行了忽略(考慮的還真周到).其它的兩個更新的操作,都是產生的OLE DB Command組件,而且自動產生了SQL語句.
     

        我們運行一個這個包,發現能夠自動的判斷資料是否更新,還是插入:
       

       好了,到現在為止,合并資料就介紹完了.

     本次專案檔下載.(for Vs 2005)

 

作者:孤獨俠客(似水流年)
出處:http://lonely7345.cnblogs.com
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.