SSIS-超Easy的簡單轉檔
這次來介紹一個非常簡單的ssis轉檔,也就是做單純的匯入匯出動作,要怎麼做呢?
首先先拉出一個資料流程工作..
然後點選"資料流程工作",按右鍵,選"編輯"之後,會切換到如下頁面,再拉出二個控制項,如下
在"Ole db來源"上按右鍵"編輯",之後可以看到如下畫面,資料存取模式的地方有
1. 資料表或檢視表-->顧名思義,就是指直接選取資料表或View的意思
2. 資料表名或檢視表名稱變數:-->指的是若你有自訂ssis的變數,而該變數中所存的是table name或View name的話,再選擇後,可以再另選變數名稱,當作被查詢table name
3. sql命令:-->可以直接下sql語法,各家的sql語法都不相同,但若要在sql中包含where條件的變數值的話,則只支援sql server
4. 來自變數的sql命令:-->可以把他想成是自己組動態的sql語法後,放在一個變數中,然後當作查詢的語法
接下來在畫面的右方選擇"資料行",若有看到如下圖的,則表示選擇是成功的..,這裡可以讓你選擇要輸出的欄位是哪些,若是不需要的欄位,也可以在此做取消選取的動作,設定完成之後,按"確定"
接下來把"oledb來源"的綠色線拉到"oledb目的地"
針對oledb目的地,按滑鼠右鍵,選編輯,若是目的地的table 還沒有建起來,也可以使用如下方紅框的部份,有個"新增"的按鈕,新增一個目的地的table,若是已經建好的,也可以使用下拉選單來選擇,在畫面中有個下拉選擇為"資料存取模式",預設為"資料表或檢視表-快速載入",這個會讓ssis在run time的時候,以buck insert的方式快速的將資料新增的目的地中,但沒有辦法解決資料key重覆的問題...
若要解決,要選擇一種模式-"資料表或檢視表",這樣就可以抓到說在新增的過程中,是那一筆有發生key重覆而塞不到目的地table了,但這也不是全然是好的,因為這樣就沒有辦法快速大量新增了,因為為了要抓出,是那一筆資料造成資料key重覆,所以就會一筆一筆塞..當遇到資料量大的時候,例如幾百萬筆的資料,就會慢到不行囉..
解決方法很多種,例如,先在轉檔的過程中,想辦法濾掉,不然就是在資料來源的地方就要濾好...等
當要使用資料存取模式為-"資料表或檢視表",希望是你在用debug的時候用到即可,一但抓到問題,解決後,還是建議使用"資料表或檢視表-快速載入"
在這裡,我選擇"新增" 資料表的方式,建一個與來源相同的名稱,只是多個2,例如我所選的是author2,他預設會以資料來源的create table的方式預設為script,你可以自行修改,記得要設pk欄位哦,若在此不會設,就自己到sql server管理介面去到設定吧..,若要匯到目的地是不需要建key的話,當然也就不用設囉..
之後點選"對應",看到如下圖所示,代表資料來源與目的地都有對應了,若有對應是不對的,也可以在下方中做對應,設定完成後,按"確定"
以下為完成圖,都沒有問題的話,則oledb及oledb目的地的控制項中,皆不會出現紅色的"X"
以下為執行結果,會列出轉出幾筆資料過去..
這樣就完成了最簡單的資料轉換囉...
‧覺得文章不錯請給我一個『讚』作為鼓勵喔!