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

2016-02-19 19:18 17 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享SQL Server 2005中如何使用分析服务执行DDL任务的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

  问题:

  我们期待在我们的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服务器上,你可以酌情编辑)。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  步骤二:

  添加一个字符串变量到程序包(package)中。我们可以看到这个变量包含XMLA脚本来执行备份。右键单击控制流(Control Flow),在下拉菜单中选择变量,接着输入变量如下:

  步骤三:

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

  步骤四:

  点击脚本编辑器(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" + _
   "  DatabaseIDAdventure 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。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1620653.html

延伸阅读
标签: SQLServer
1.在查询分析器理启动或停止SQL Agent服务 启动 use master go xp_cmdshell 'net start SQLSERVERAGENT' 停止 use master go xp_cmdshell 'net stop SQLSERVERAGENT' 将服务的启动从手工方式改为自动启动方式 exec xp_cmdshell 'scm -Action 7 -Service mssqlserver -SvcStartType 2' 直接用...
1.在查询分析器理启动或停止SQL Agent服务 启动 use master go xp_cmdshell 'net start SQLSERVERAGENT' 停止 use master go xp_cmdshell 'net stop SQLSERVERAGENT' 将服务的启动从手工方式改为自动启动方式 exec xp_cmdshell 's...
问题提出 在我的新工作中,我面临着一个问题,在product数据库中把创建的表进行归档,因为随着数据库的增长,现在需要把它们移走。同时,这些归档的表被几项工作使用,而且它还在应用程序的代码中被调用。这样移动它们就是一个非常复杂的过程。我希望能找到一种方法,尽可能减轻开发人员必须得完成的工作量,因为他们的时间非常有限...
标签: Web开发
首先要明确一个基本原则,XML类型的数据之间以及XML类型与其它数据类型之间都是不能比较的,也就是说XML类型的数据不能出现在等号的任何一边。 大致可分为查询类,修改类和跨域查询类。 查询类包含query(),value(),exist()和nodes(). 修改类包含modify(). 跨域查询类包含sql:variable()和sql:column(). 查询类 ...
标签: PHP
触发器是类似于存储程序的 数据库 对象 ,它响应数据库环境下的某个请求。SQL Sever 2005包含3个触发器对象:AFTER,数据定义语言 (DDL)和INSTEAD-OF。 AFTER触发器是存储程序,它发生于数据操作语句作用之后,例如删除语句等。DDL是SQL Server 2005的新触发器,允许响应数据库引擎中对象定义水平事件(例如:DROP TAB...

经验教程

90

收藏

65
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部