[SSIS]C#指令碼(Script component篇)

上一篇筆記了指令碼工作,這一篇來筆記指令碼元件(script component)

  • 指令碼工作
  • 指令碼元件

我們這次想換個版本從SSIS2008轉到SSIS2012,

1.開啟SSIS 2012 BI開發工具: (看圖示可以發現,背後其實是VS2010)

2.新增專案(範本=Integration Service)

這邊要注意.NET Framework版本,SSIS2012使用到 .NET 4.0

這篇練習資料流程中的指令碼元件:

3.從左邊的工具拖曳資料流程出來

4.點兩下資料流程進入資料流程頁簽下,從左邊得的工具箱再拖曳指令碼元件到資料流程視窗中。

此時會跳出選擇指令碼元件類型: (1)來源 (2)目的 (3)轉換

這篇我們先練習利用c#程式動態產生一個員工名單,再利用一般檔案目的地將.txt檔案產出。

5.使用指令碼轉換編輯器中的輸出輸入先編輯輸出欄位,這邊我們設計ID、NAME及AGE。

5.使用指令碼轉換編輯器中的指令碼點選編輯指令碼

6.接下來會跳出Visual Studio 2010開發工具

7.接著在CreateNewOutputRows()方法中新增員工資料。

 輸出0Buffer.AddRow();
 輸出0Buffer.ID = "C1";
 輸出0Buffer.NAME = "Amanda";
 輸出0Buffer.AGE = 18;

 輸出0Buffer.AddRow();
 輸出0Buffer.ID = "C2";
 輸出0Buffer.NAME = "Ann";
 輸出0Buffer.AGE = 19;

 輸出0Buffer.AddRow();
 輸出0Buffer.ID = "C3";
 輸出0Buffer.NAME = "Amy";
 輸出0Buffer.AGE = 20;

然後關閉視窗,此時會花一點時間,感覺她在背後編譯。

8.回到控制流程,指令碼工作編輯器按下[確定],接著就從工具箱拖曳一般檔案目的地元件。

9.將資料碼元件與一般檔案目的地的線接上,點選一般檔案目的地元件2下:

新增檔案連接管理員

檔案設定

確認輸入資料行(欄位),因為剛剛接上線了,此時會自動帶出指令碼元件輸出的3個欄位

按下確定,接著就可以測試了。

測試只需要按下F5或上方的Play圖示,與平時開發.NET 相同。

產出檔案內容:

小結:

  • 是不是還蠻簡單的,雖然一般使用SSIS通常不會自己下去寫程式,但如果遇到了,還是有擴充的機會。
  • 會拿SSIS跑日常批次也是很特別的經驗,感覺SSIS更適合資料轉換作ETL的事情。