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

來源:互聯網
上載者:User

     我們已經實現了把Excel中的資料匯入到資料流目的地,也就是資料庫中,但是我們只是類比了不重複的資料,也就是都是資料庫中此時不存在的資料.那麼如果資料流源Excel中的資料和資料庫中的資料的主鍵相同的情況下,再進行插入操作就會出現異常,怎麼才能實現自動的更新操作呢?也就是自動的判斷資料來源的資料,如果資料庫中存在就執行更新,不存在就執行插入呢?
    可能叫做合并資料會有些誤解,這裡的合并資料與資料流中的Merge組件和Merge Join組件直接實現的效果是有差別的,首先我們看看這兩個組件.
    我們建立一個包,重合名為MergeData,然後在控制流程中將上次的ForeachInput包中的組件全部複製過來(包括連線管理員),刪除Foreach迴圈容器,然後修改資料流,添加兩個Excel資料流源,分別對其通過Sort進行排序(按照ProductNumber欄位),再添加Merge進行資料合併,分別添加三個資料檢視器,修改後的資料流圖如下:
   

    我們執行一下,三個資料檢視器的部分載圖如下:

   

   可以看到,Merge資料合併了兩個資料來源的資料,但是並不直接實現我們想達到的目標,不過注意到Merge有以下兩個特點:
    1.使用Merge轉換之前必須對資料進行排序,可能通過象上面那樣使用Sort轉換,或者直接在源串連中指定ORDER BY直接完成.
    2.合并資料的兩個路徑之間的中繼資料必須相同.
    3.只能應用於兩個資料的合并,如要兩個以上,可考慮選擇Union All轉換
   Merge Join組件和Merge組件有什麼樣的區別呢?我們再建立一個包MergeData2來看下Merge Join組件,兩個資料流源分別串連到Product表和ProductInventory表,修改資料流如下:

    兩個Sort分別按照ProductID欄位進行升序排序,Product路徑輸入資料流作為左側輸出,Merge Jogin組件設定成左外部串連(左串連,外部,內部串連和SQL一樣),並選擇需要輸出傳遞到路徑的列:
   

   執行過程的三個資料檢視器顯示的資料如下:
  

     可以看到和SQL的串連一下,將產品的基本資料和產品的庫存資訊串連在一起組合一起,它的作用就是可以合并兩個輸入的輸出並對資料執行INNER或者OUTER串連,當然,如果兩路輸入位於同一個資料庫中,你直接使用OLE DB資料層級的join操作會更快,但是當你希望合并兩個不同的資料來源時,Merge Join就可以派上用場了.
     OK,今天就到這裡,我們主要今天主要是熟悉了Merge和Merge Join,但是並沒有實現我們上面提出來的直接同步處理合并資料的需求(不過其實仔細考慮一下,其實再結合其它的組件可以實現).下幾次我們將採用幾種方式實現.

     本次專案檔下載.(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.