問題:
我們期待在我們的SQL Server分析服務服務器中自動執行任務。請問您能給我們講解怎樣在SSIS中使用分析服務執行DDL任務(Analysis Services Execute DDL Task)的細節嗎?
專家解答:
分析服務執行DDL任務(Analysis Services Execute DDL Task)是一個很有用的工具,它可以讓你用一個SQL Server分析服務實例做任何事情。例如,你可以備份一個數據庫,處理一個數據分析立方體,創建一個分區。利用XML分析(XMLA)來執行指定的命令,這是用于客戶應用程序與Microsoft SQL Server分析服務實例交互作用的native XML協議。你可以在網上或書里找到所有關于XMLA的細節,只要搜索XMLA就可以了。
要記住一點,那就是你可以利用SQL Server Management Studio (SSMS)創建任何你需要做的腳本。比如,你可以連接到SQL Server分析服務的服務器,右鍵點擊一個數據庫,然后從下拉菜單中選擇“Back up”.你可以在備份數據庫會話中點擊這個腳本按鈕來產生XMLA腳本去執行備份。你可以從SSIS程序包中運用分析服務執行DDL任務來運行這個XMLA腳本。創建SSIS程序包的好處在于你可以在需要時或者按照時間表通過SQL Server Agent來進行一個可重復的過程。
在這種方法中,我們在一個SSIS程序包中按照步驟來使用分析服務執行DDL任務(Analysis Services Execute DDL Task)。我們將創建一個示例程序包來執行Adventure Works DW 分析服務數據庫與SQL Server 2005的備份。
創建示例SSIS程序包
首先從Microsoft SQL Server 2005程序組中啟動 Business Intelligence Development Studio (BIDS),并創建一個新的一體化服務項目(Integration Services project)。一個命名為Package.dtsx 的SSIS程序包將自動產生并添加到項目(project)中。把程序包(package)重命名為SSASExecuteDDLTask_Demo.dtsx,然后在SSIS程序包中進行以下步驟:
步驟一:
添加一個連接管理(Connection Manager)到SSAS服務器中。右鍵點擊連接管理(Connection Managers)頁面,從下拉菜單中選擇新的分析服務連接(New Analysis Services Connection)。在對話框中接受默認值以連接到本地SSAS服務器(如果你想連接到其他機器上的SSAS服務器上,你可以酌情編輯)。
步驟二:
添加一個字符串變量到程序包(package)中。我們可以看到這個變量包含XMLA腳本來執行備份。右鍵單擊控制流(Control Flow),在下拉菜單中選擇變量,接著輸入變量如下:
步驟三:
把腳本任務從工具欄拖放到SSIS程序包的控制流(Control Flow)。編輯腳本任務,并將步驟二中創建的程序包變量添加到ReadWriteVariables屬性中。在下一個步驟中將XMLA腳本分配到這個變量中。
步驟四:
點擊腳本編輯器(Script Task Editor)中的Design Script按鈕并輸入以下XMLA腳本(記住可以用SSMS創建腳本):
Public Sub
Dim backupfilename As String = "AdventureWorksDW_" + Now().ToString("MMddyyyy") + ".abf"
Dim xml As String = _
"<Backup xmlns=""http://schemas.microsoft.com/analysisservices/2003/engine"">" + _
"<Object>" + _
" <DatabaseID>Adventure Works DW</DatabaseID>" + _
"</Object>" + _
"<File>${BACKUPFILENAME}</File>" + _
"</Backup>"
Dts.Variables("User::v_XMLA").Value = xml.Replace("${BACKUPFILENAME}", backupfilename)
Dts.TaskResult = Dts.Results.Success
End Sub
|
這只是一個例子,說明你可以怎樣調整用SSMS創建的XMLA。備份的文件名可以修改,以包括當前日期。由此產生的XMLA存儲在名為v_XMLA的程序包變量中。用以文本取代的${BACKUPFILENAME}的使用可以是任意的,但希望是符合常理的。
步驟五:
把分析服務執行DDL任務從工具欄拖放到SSIS程序包的控制流(Control Flow)中,并把它連接到腳本任務配置中。打開分析服務執行DDL任務編輯器(Analysis Services Execute DDL Task editor),點擊列表框左側中的DDL,并設置屬性如下:
該XMLA執行被定義在先前安裝的程序包變量中。這時,SSIS程序包看起來如下:
這時,你可以執行SSIS程序包并看到備份文件已經建立。默認的路徑在分析服務器(Analysis Server)的BackupDir屬性中說明,例如,C:Program FilesMicrosoft SQL ServerMSSQL.2OLAPBackup。