合并資料1 Merge和Merge Join組件
引入本章的目的:前幾章我們已經實現了把Excel中的資料匯入到資料庫中,實現了不重複資料的插入,也就是都只插入資料庫中不存在的資料.那麼如果資料流源Excel中的資料和資料庫中的資料的主鍵相同的情況下,再進行插入操作就會出現異常,怎麼才能實現自動的更新操作呢?也就是自動的判斷資料來源的資料,如果資料庫中存在就執行更新,不存在就執行插入呢?
可能叫做合并資料會有些誤解,這裡的合并資料與運用Merge組件和Merge Join組件直接實現的效果是有差別的,首先我們看看這兩個組件.
Merge組件 配置
1. 建立一個包,命名為MergeData.
2. 在控制流程中從工具箱拖一個資料流程工作。編輯進入資料流,拖二個Excel源,編輯Excel源,選擇Product.xls檔案。
3. 再分別拖二個Sort組件進行排序
按照ProductNumber欄位排序
4. 再添加Merge進行資料合併。
5. 拖一個Audit組件。完成資料流配置後,分別添加三個資料檢視器。
配置好的資料流圖
6. 調試。查看運行效果。
可以看到,Merge資料僅僅合并了兩個資料來源的資料,包括重複資料。注意到Merge有以下特點:
1.使用Merge轉換之前必須對資料進行排序,可能通過如上面那樣使用Sort轉換,或者直接在源串連中指定ORDER BY直接完成. (需要實驗)
2.合并資料的兩個路徑之間的中繼資料必須相同. (需要實驗)
3.只能應用於兩個資料的合并,如要兩個以上,可考慮選擇Union All轉換(需要實驗)
Merge Join 組件 配置
1. 再建立一個包,命名為MergeData2.
2. 拖兩個OLE DB源,兩個資料來源分別串連到Product表和ProductInventory表.
3. 拖入兩個Sort組件,分別按ProductID欄位進行升序排序。Product是左側輸入。
Product排序
4. 拖一個Merge Join組件,設定連線類型為“左外部串連”(左串連,外部,內部串連和SQL一樣),並選擇需要輸出傳遞到路徑的列:
5. 添加三個資料檢視器。完成所有配置
6. 運行
可以看到,Merge Join 組件的作用就是把兩個表通過外鍵串連起來,並且通過合并時設定所需要輸出資料行,顯示合并表資料。它的作用相當於SQL中的INNER或者OUTER串連。
可以看到和SQL的串連一下, ,當然,如果兩路輸入位於同一個資料庫中,你直接使用OLE DB資料層級的join操作會更快,但是當你希望合并兩個不同的資料來源時,Merge Join就可以派上用場了.(不是很明白?)
p.s :需要補習下,SQL中串連的知識
項目step1---4原始碼檔案:版本為SQL 2005,運行代碼前還需要安裝ExceL應用程式
/Files/cocole/Step1-4Sql05.rar
作者:悟空的天空(天馬行空)
出處:http://www.cnblogs.com/cocole/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。