CIO
|
PCDIY!
|
旗標圖書
|
旗景數位影像
|
讀者服務
首 頁
即時新聞
業界動態
最新活動
企業採購
精選文章
線上教學
品牌活動
程式碼下載
雲端運算智庫
最近新增的
精選文章
AP內建AI引擎 Mist Cloud平台分析能力強 Juniper Mist AI領先全球 改善WiFi穩定、效能首選
解決IT供應鏈攻擊
內部威脅的七個警訊
遠百以專案辦公室推動數位體驗
多廠牌與多重電信業者網路架構的挑戰與機會
德明科大啟用電貿暨AI實習基地 ViewSonic ViewBoard 智慧互動電子白板 扮要角
淺談計算誤差
秀傳醫療體系統 以Lenovo HyperConverged HX 超融合架構扎穩智慧醫療發展基礎
模組化設計 偵測率達99.99% 全面防杜惡意郵件入侵 首選Cellopoint Email UTM
滿足網路管理與檔案安全傳輸需求,Ipswitch的MOVEit及WhatsUp Gold一次完整提供
來自學界的資料分析利器 - Weka 與 R
北醫建置肺癌資料庫,透過深度標註訓練AI,協助醫師早期發現癌症
北榮AI門診上路!人工智慧判讀腦瘤,有效縮短醫師確診時間
台灣智慧機器人玩具聯盟攜手英閱音躍研創 推廣T. Robot程式教育,協助國中小學扎根培養運算思維
一場與時間賽跑的戰役 ,人工智慧加速心血管疾病診斷
最多人點閱的
精選文章
免費IT建置--Linux系統操作與管理
初探Hadoop開放原始碼平台環境
免費IT建置--網頁伺服器的完美組合LAMP(下)
免費IT建置--檔案共享與檔案伺服器
Linux下的防火牆(基礎篇)
Linux下的防火牆(進階篇)
N.Y.BAGELS CAFE善用SAP Business One
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 影片播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 線上查詢匯率
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 擲骰子遊戲
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 音樂播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 來電黑名單
免費IT建置--網頁伺服器的完美組合LAMP(上)
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 繪圖板範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ Matrix應用範例
精選文章 - 網管資安
分享到Plurk
分享到FaceBook
SQL Server Integration Services 2012初探(3)
文‧圖/胡百敬
2012/2/10 下午 05:48:59
在上期專欄中,主要介紹了SSIS 2012封裝開發環境 SQL Server Data Tools(SSDT) 針對SSIS新增的「專案部署模型」提供的共享物件。而透過SSDT的專案開發多個封裝後,可以「建置」成一個用來部署的 ispac 檔案,交由管理人員利用該檔案一次部屬多個相關的封裝,再以 SQL Server Management Studio(SSMS) 設定封裝的屬性。
接下來繼續說明 SQL Server 端為存放、管理、執行SSIS專案與封裝所新增的功能,但在介紹如何部署前須先說明SSIS 2012新增的「Integration Services 目錄」。
就SSIS封裝部署與管理而言,SSMS「物件總管」視窗的樹狀結構中多了「Integration Services 目錄(也有人稱為SSIS Server)」結點,並在 SQL Server 建立可以存放SSIS封裝的專屬資料庫,它就是 SQL Server 內一般的使用者資料庫,但SSIS團隊已經在其內建置好資料表、檢視、預存程序…等多種物件。由於SSIS在 2012 版大幅改變設定、部署與監控的架構,近似 SQL Server 內MSDB 系統資料庫搭配 SQL Agent 服務的作法。這讓SSIS 2012的管理有全新的風貌。
Integration Services 目錄
SQL Server 2012的「Integration Services目錄」是管理 Integration Services 專案、封裝、參數與環境的之處,其下的 SSISDB資料庫是儲存封裝的核心。
[註:為了向前相容性,SQL Server 2012 搭配SSIS 2012依然保有了以往透過 MSDB 存放封裝之架構,並以 SSMS 的「物件總管」視窗獨立連結某個 Integration Services 執行個體,以載入、維護個別的封裝,但不建議在新的SSIS開發專案沿用這舊的作法。]
一個 SQL Server 執行個體只會有一個目錄(catalog),而SQL Server中的目錄與其他新功能是IS部屬與管理所衍生的。以下將透過操作步驟說明如何在SSMS中建立與檢視「目錄」,其下的「資料夾」、「專案」、「環境」等,以及相關的屬性介紹。值得注意的是,Integration Services目錄只支援SSDT的「專案部屬模式」。
建立Integration Services 目錄
剛安裝好的 SQL Server 2012 執行個體並沒有存放SSIS封裝定義的 SSISDB 資料庫。需在SSMS的「物件總管」視窗內手動建立目錄,如圖1所示。使用滑鼠右鍵點選「Integration Services 目錄」節點,選擇快捷選單內的「建立目錄」選項:
▲ 圖1 在 SQL Server 執行個體建立SSIS目錄
在「建立目錄」對話窗會要求輸入一組密碼,並利用此密碼保護加密金鑰。透過加密方式可保護目錄中的敏感性資料。需注意的是,要啟用資料庫引擎的CLR整合,才能建立目錄。
建立好目錄之後,SSMS 「物件總管」視窗的「Integration Services目錄」節點下會建立SSISDB 子節點,亦即代表 SQL Server 新增名為 SSISDB 的使用者資料庫。該資料庫內已經建立好各種物件,如資料表、預存程序…等,以存放與管理SSIS封裝。
建立完目錄後,可透過屬性變更「Integration Services 目錄」的行為,滑鼠右鍵點選 SSISDB 節點並選擇「屬性」選項,可叫出如圖2 的「目錄屬性」視窗:
▲ 圖2 設定Integration Services 目錄屬性
從圖2 可以看到 SSISDB 資料庫的版本,並設定保留「作業記錄」和SSIS「專案版本」的方式,後文的操作過程將會一併說明此二部分。
資料夾
接下來要在「目錄」內建立一個以上的「資料夾」,才可以存放SSIS的專案與封裝。在「SSISDB」節點下,利用滑鼠右鍵選擇「建立資料夾」選項,如圖3 所示:
▲ 圖3 在SSIS目錄下建立資料夾
如圖3 在「建立資料夾」對話窗賦予「資料夾名稱」後,就可以在 SSISDB 節點下建立資料夾,預設在該資料夾下有「專案」和「環境」兩個子資料夾,每個子資料夾都可以部署多個SSIS專案與建立多個環境定義。
SSISDB 節點下可以建立多個資料夾,以分門別類管理不同的SSIS封裝專案。每個資料夾可以有不同的安全設定,如圖4 所示:
▲ 圖4 賦予 SSISDB 內的角色與使用者存取目錄的權限
透過圖4 右上方的「瀏覽」按鈕,可以賦予 SSISDB 資料庫內的角色與使用者存取該資料夾及其下物件的權限。換句話說,若要增減可用的角色與使用者,需設定 SSISDB 資料庫的安全性。
專案
接下來若要將SSDT所開發的SSIS專案部署到當下的目錄內,可以如圖3 右下方直接滑鼠右鍵點選「目錄」節點,並選擇「部署專案」選項,接著找到透過SSDT建立出的 ispac 檔。或是如圖5 直接透過SSDT的「方案總管」視窗,將SSIS專案部署到目錄:
▲ 圖5 透過SSDT的「方案總管」視窗,將SSIS專案部署到SSIS目錄與資料夾
若該目錄與資料夾下已經存在同名的專案,部署到資料夾後會自動為該專案新增版本,並標示不同的「專案 LSN」。SSIS 預設會保留圖2 所設定「每一專案的版本數目上限」之數量,若「定期移除舊版本」設定為 true,則超過數量且部署時間較早的專案版本會被清掉。
但這需要靠 SQL Server Agent 的「作業」來維護,預設該「作業」名稱為「SSIS Server Maintenance Job」,排程為每日上午 12:00 執行。換句話說,若部署到 SSISDB 某個資料夾內的專案超過數量限制,但「作業」排程的時間未到,或SQL Server Agent 服務根本未啟動,則不會執行清除的動作。
若你直接檢視「SSIS Server Maintenance Job」作業的「SSIS Server Max Version Per Project Maintenance」步驟,可以看到它只是在 SSISDB 內執行以下的預存程序:
EXEC [internal].[cleanup_server_project_version]
換句話說,若你手動執行該預存程序,也可以清除過量的老舊專案版本。若要檢視各專案的版本,可以直接滑鼠右鍵點選代表該專案的節點,而後選擇「版本」選項,如圖6 所示:
▲ 圖6 檢視或還原某個SSIS專案的特定版本
圖6 的「專案版本」對話窗中可以看到「資料夾」下該專案放了幾個版本,你可以勾選任一個不是「目前的」版本,再點選右下角的「還原至選取的版本」按鈕,就可以將SSIS目錄內,該專案預設使用的版本還原到某個時間部署的版本。除了可執行該版本的封裝外,透過圖6 中快捷選單中的「匯出」選項,可以 ispac 檔案格式輸出不同的版本定義,透過SSDT重新匯入並建立專案。
環境
在資料夾下可以看到環境(environment)子節點,一個資料夾可以建立多「環境」,藉以定義一組「環境變數(environment variable)」。透過滑鼠右鍵點選「環境」節點,並選擇「建立環境」選項,如圖7 所示:
▲ 圖7 在「資料夾」下建立「環境」
給予名稱建立完自訂環境後,可再以滑鼠右鍵點選該自訂環境節點,並選擇「屬性」選項,在接下來的「環境屬性」對話窗中,點選「變數」頁籤,可以建立環境變數,如圖8 所示:
▲ 圖8 建立環境變數
圖8 中直接點選賦予新變數的「名稱」,資料「類型」,即可建立新環境變數,其後可以定義「值」,這裡的「Sensitive」依然翻譯作「區分」,如同上篇專欄所介紹的「專案/封裝參數」設定,仍代表此「環境變數」值是否為機密。若勾選為機密資料時,其存放於 SSISDB 資料庫內的變數內容會自動加密,且在設計畫面上的「值」改以星號呈現,若透過 SSISDB 資料庫內預設提供的「catalog.environment_variables 檢視」查詢該機密值,會自動變成 NULL。
每個「環境」可以用來儲存多個「環境變數」,在封裝執行時,將這些變數值繫結至「專案/封裝參數」。你可以針對不同的需求定義不同的環境來組織變數並賦予值,例如為相同的專案與封裝分別設計測試與正式的環境和環境變數。須提醒一點的是,這種環境、環境變數、專案、專案變數、封裝變數等設計與執行方式僅適用於SSIS 2012新提供的「專案部署模型」。
建立完環境變數後,可以滑鼠右鍵點選先前已經部署到 Integration Services 目錄特定資料夾下的專案節點,並選擇「設定」選項,而後在「設定-<專案名稱>」對話窗賦予專案所參考的「環境」,如圖9 所示:
▲ 圖9 設定專案所參考的環境
同一個SSIS專案可以參考多個「環境」。在圖9「瀏覽環境」對話窗中,與當下專案放在同一個「資料夾」內的「環境」會呈現在「本機資料夾(<資料夾名稱>)」的節點下(也稱為相對路徑參照),而「SSISDB」節點下則呈現整個資料夾結構,讓你選擇不同資料夾內的「環境」定義(也稱為絕對路徑參照)。
若你可能移動專案到不同的資料夾,就需要考慮參照「環境」是採用相對或絕對路徑。由於「專案」和「環境」都可以在資料夾間移動,而執行移動時,SSMS、SSIS 或資料庫定義並未規範參照的完整性,也就是若某個「專案」已經設定對某個「環境」的參照,這時不管是移動「專案」或「環境」造成參照錯誤,執行「移動」時並不會有任何警告。
一旦專案參考了先前定義的環境後,圖9 中間的「設定-<專案名稱>」對話窗就可以切換到「參數」頁籤,透過環境變數賦予專案或封裝參數的值,如圖10 所示:
▲ 圖10 透過環境變數設定專案或封裝參數值
雖然一個 SSIS 專案可以對應多個「環境」,但個別封裝在執行時,一個參數僅能繫結某個環境內某個環境變數,以賦予變數的值。如圖10 中,筆者將myEnv環境中的 strFile 變數值賦予專案參數 strPackageUsedFile。
當環境變數與專案/封裝變數配對後,在實際執行封裝時,會帶進當時的變數值。當利用 SQL Server Management Studio 執行某個封裝時,也可以透過相似的設定方式指定該次執行時,其專案/封裝參數所要使用的「環境」。如圖11 所示:
▲ 圖11 透過 SSMS 執行特定封裝時,指定所要引用先前定義的環境
當實際執行該封裝時,透過圖11 的 SSMS 選擇特定封裝,指定先前定義的環境參照,則 SSIS執行引擎會依先前的定義自動搜索與配對「環境變數」和「專案/封裝參數」,若有對應不上的參數,或資料型別錯誤,則會放棄執行封裝。
圖11 右下方下拉選單內呈現所選擇的環境名稱是圖9 所設定的內容,若你已將「專案」或「環境」移動到不同資料夾,則此處下拉選單可能會因呈現以往設定的內容,而選不到可用的「環境」。
至此,已經介紹完SSDT的專案特徵與SSIS 2012所提供的伺服器環境,在下期文章中,我們再繼續介紹專案部署與執行。
回首頁...
關於RUN!PC
|
廣告刊登
|
聯絡我們
|
讀者服務
|
雜誌訂閱
|
出刊&補寄時間
-- Copyright© FLAG INFORMATION CO., LTD. 旗訊科技(股)公司. All rights reserved. 本站圖文著作權所有 未經授權 不得任意轉載使用 --
-- 請使用1024*768螢幕解析度,IE 7.0或firefox 3.0以上瀏覽器,以達到最佳閱讀效果--