问题:
我们期待在我们的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。