IT运维管理,创造商业价值!
中国IT运维网首页 | 资讯中心 | 运维管理 | 信息安全 | CIO视界 | 云计算 | 最佳案例 | 运维资源 | 专题策划 | 知识库 | 论坛

SQL Server 2005中如何使用分析服务执行DDL任务

2008年09月12日
IT专家网/

  问题:

  我们期待在我们的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),在下拉菜单中选择变量,接着输入变量如下:

添加一个字符串变量到程序包(package)中

  步骤三:

  把脚本任务从工具栏拖放到SSIS程序包的控制流(Control Flow)。编辑脚本任务,并将步骤二中创建的程序包变量添加到ReadWriteVariables属性中。在下一个步骤中将XMLA脚本分配到这个变量中。

把脚本任务从工具栏拖放到SSIS程序包的控制流

  步骤四:

  点击脚本编辑器(Script Task Editor)中的Design Script按钮并输入以下XMLA脚本(记住可以用SSMS创建脚本):


Public Sub Main()
  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,并设置属性如下:

把分析服务执行DDL任务从工具栏拖放到SSIS程序包的控制流

 

  该XMLA执行被定义在先前安装的程序包变量中。这时,SSIS程序包看起来如下:

SSIS程序包

  这时,你可以执行SSIS程序包并看到备份文件已经建立。默认的路径在分析服务器(Analysis Server)的BackupDir属性中说明,例如,C:Program FilesMicrosoft SQL ServerMSSQL.2OLAPBackup。

发表评论请到:http://bbs.cnitom.com

相关阅读

图文热点

SQL Server2008行数据和页数据压缩解密
SQL Server2008行数据和页数据压缩解密本文将为大家介绍SQL Server 2008行数据和页数据的一些处理方法,希望能对DBA的管...
如何修改天融信NGFW4000防火墙用户认证数据库
如何修改天融信NGFW4000防火墙用户认证数据库对象本文主要是如何修改天融信NGFW4000防火墙用户认证数据库对象的介绍。...

本类热点