我有一个SQL Server 分析服务( SSAS ) 多维数据集(使用BIDS 2012开发),我想给用户(通过PowerPivot使用多维数据集)在他们的本地机器上处理多维数据集的机会。
我找到了一些关于如何通过 Powershell 或 SQL 代理或 SSIS 在服务器上进行计划作业的材料,但没有关于远程处理多维数据集的材料。有什么建议吗?
我有一个SQL Server 分析服务( SSAS ) 多维数据集(使用BIDS 2012开发),我想给用户(通过PowerPivot使用多维数据集)在他们的本地机器上处理多维数据集的机会。
我找到了一些关于如何通过 Powershell 或 SQL 代理或 SSIS 在服务器上进行计划作业的材料,但没有关于远程处理多维数据集的材料。有什么建议吗?
触发多维数据集处理有多种可能性。低级方法是向包含多维数据集的数据库发出 XMLA 语句。要查看它的外观,请打开 SQL Server Management Studio,连接到 AS 实例,右键单击 AS 数据库,然后选择“处理”。配置处理设置,但不要单击“确定”,而是从顶部工具栏中选择“脚本以为您生成 XMLA 处理命令。使用取消离开对话框。处理多维数据集的所有方法在发送时以某种方式结束像这样的命令到 AS 数据库。
有几个选项可以触发多维数据集处理:
然而,问题是最终用户如何访问上述设置。这里一个重要的问题当然是执行处理任务的用户需要有处理立方体的权限。由于您可能不想直接授予此权限,因此在调用它的过程中使用一些模拟可能是有意义的。使用 Management Studio——据我所知,使用 PowerShell——这不容易实现。
集成服务和代理工作提供了模拟的可能性。集成服务包由 dtexec 命令行工具(SQL Server 客户端工具的一部分)执行,还有一个名为 dtexecui 的工具(在标准 SQL Server 客户端工具安装中作为“执行包实用程序”提供),它允许您使用一个对话框来配置所有设置,然后执行一个包,但它也可以根据您的设置显示 dtexec 的命令行。
要调用 SQL Server 代理作业,一个简单的接口是存储过程(http://msdn.microsoft.com/en-us/library/ms187763.aspx),尤其是sp_start_job
(注意这是异步的,你调用它,它启动作业并返回。它不会在返回之前等待作业完成。)并sp_help_jobactivity
询问作业状态以及sp_help_jobhistory
正在运行的作业的详细信息。
总而言之,我认为没有可用的最终解决方案,但我提到了一些构建块,您可以使用这些构建块来编写自己的解决方案,具体取决于您环境中的偏好。