[SSIS]SSIS 2016 新功能 - Control Flow Template

[SSIS]SSIS 2016 新功能–Control Flow Template

這幾天把 SQL Server 2016 CTP 3 ( 網址 ) 安裝起來,一併也將 SSDT 2015 October ( 網址 ) 也安裝上去,想要來測試看看 SSIS 的新功能。在這次的新功能上,我比較期待的是 Control Flow Template,從說明上看起來是可以提升開發速度的方式,因此想測試看看。記得在 SSIS 2012 的時候,SSDT 有支援 Undo 的功能,當時看到真的感動到快哭出來了,SSDT 拖了那麼久才有這樣的功能。而又過這幾年,總算 SSIS 有再加入一些新功能了,不知道是否真如簡報中所說的,可以提升 Reuse 的機會了。

 

當開啟 SSDT 建立 SSIS 專案,就可以在方案總管內看到新增的「控制流程範本」的目錄了

image

 

因此我們就可以在它上面按下滑鼠右鍵,因為我們之前沒有任何可以用的範本,因此就選擇「新增控制流程範本」的選項。但如果您之前已經有範本檔案,則可以選擇下面的「加入現有範本」,將範本加入到此方案內。

image

 

新增之後,我們可以看到兩個部分:

1. 控制流程範本會放在專案內,跟原本的封裝檔案附檔名為 .dtsx 有所區別,控制流程範本檔案附檔名為 dtsxt

2. 控制流程範本並不像封裝依樣有那麼多功能,只有控制流程和資料流程,沒有其他參數和事件管理。

image

 

在這個範本內,我們可以把一些我們封裝會常需要重複使用的部分做個設定,這樣就可以把它當成一個複合元件般的拖拉到封裝內使用,範本會被視為一個元件來使用。因此如果我們在範本內需要有多個 Task 的時候,就需要用一個「時序容器」將會使用到的元件整合成為一個。

image

 

當我們做好一個範本之後,接著我們就可以回到我們真正的封裝內,在 SSIS 工具箱內,此時會多出一個控制流程範本 Template1,我們可以將該範本視為一個複合的 Task,跟其他 Task 使用的方式相同,直接拖拉到控制流程的頁籤內,這個元件會在右上角的地方,有個 T 的提示。因為這個是一個複合的 Task,因此這個時候我們不能點選時序容器的 Task 來設定,所有設定都是在這個範本元件上面

image

 

所以如果我要更改這裡面 Step 2 那個「執行 SQL 工作」的屬性值,則就要在 Template1 上按下滑鼠右鍵,選擇「編輯」

image

 

然後調整你想要變更的元件屬性就可以了

image


 

雖然看起來是蠻不錯用的,但使用上還是需要特別注意幾點:

1. 因為整個範本視為一個元件,因此如果有多個元件要使用的時候,要記得用「時序容器」包成一個元件來使用,否則會無法加入到封裝內來使用。

2. 如果使用範本之後,後續將範本檔改變,會造成已經加入到封裝內的範本,都會恢復成原本獨立的元件,因此使用上要特別注意。

3. 範本雖然可以做到模組化,但 SSIS 2012 之後所提供的專案部署模式在呼叫封裝上也非常方便,因此如果可以獨立的功能,或許可以直接用一個單獨的封裝,透過傳遞參數來呼叫,也是一種不錯的方式。

4. 範本只是設計過程中所使用的,真正最後產出到 dtsx 檔案中的時候,都還是用原本的元件。因此當有使用範本的時候,則會多增加一個 .dtsx.designer 的檔案,主要是透過這個檔案和範本檔案,來產生封裝 dtsx 的檔案。

 

當寫完之後,發現 MSDN 上有一個不錯的圖來說明這樣的架構,因此如果覺得上述說明不夠清楚的話,可以參考 MSDN 上的文章 ( 網址 )

image