上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用PowerShell脚本。
原文地址:
在SSAS下使用PowerShell变量
$mydate="ssas powershell"
这里我们创建了一个名字为$mydate的变量,$前缀表名这是一个变量,然后给这个变量赋一个值"ssas powershell"。
$mydate
$mydate=Get-Date
通过Get-Date方法获取到当前日期,并且将其赋给$mydate变量。PowerShell是不需要为变量指定类型的:
$mydate=Get-Date –format yyyyddMM
MM在这里是大写主要是为了跟分钟的小写mm区分开。
$mydate
这样我们就获取到了一个格式为yyyyddMM的保存有当前日期的变量。
backup-asdatabase d:\awdb-$mydate.abf "AdventureWorksDW2012Multidimensional-EE" -AllowOverwrite –ApplyCompression
这样一个待用当前时间编辑的文件名备份就被创建在了d盘上。同样在上面的这个命令中,指派了数据库的名称,允许覆盖标记以及是否启用压缩。
使用PowerShell处理SSAS的一个分区
跟上一篇的不同,这里我们用一个变量名引入到命令中,来实现动态的分区处理。
$myyear=2008
Invoke-ProcessPartition -Name "Internet_Orders_"+$myyear -MeasureGroupname "Internet Orders" -CubeName "Adventure Works" -database "AdventureWorksDW2012Multidimensional-EE" -ProcessType "ProcessFull"
在上面的命令中,变量"Internet_Orders_$myyear"对应的就是分区名"Internet_Orders_2008"。度量值组是"Internet Orders",CubeName是"Adventure Works"。
通过PowerShell调用XMLA脚本
[译注]:原文这里没有提到,就是下面的QueryDefinition对应的那段SQL代码也是需要修改的,所以实际项目中,需要根据实际情况,Name和QueryDefinition都需要修改,这里的修改跟UI界面中的都能对应的上,所以这里不做详细介绍。
Invoke-ASCmd -InputFile:"d:\powershell2\createPartition.xmla"
Invoke-ASCMD命令用于在PowerShell中运行SSAS命令,比如XMLA脚本,应用立方体的MDX脚本以及应用数据挖掘的DMX脚本。如果此时在SSMS中刷新一下SSAS实例,可以看到新创建的分区。
在PowerShell中运行MDX查询
Invoke-ASCmd -Database "AdventureWorksDW2012Multidimensional-EE" -InputFile:"d:\powershell2\mymdx.mdx"| Out-file d:\Results\XMLAQueryOutput.xml
这里我们所做的就是在AdventureWorksDW2012Multidimensional数据库中运行这个MDX查询,查询结果以XML的方式显示在文件XMLAQueryOutput.xml中。
[译注]
原文介绍的都是很简单的操作,但是对于自动化任务来说还是很方便的,不如动态创建分区,动态处理分区等等,变量的引入可以加入更多的程序流程在里面,从而实现更复杂的功能。
SSAS下玩转PowerShell(二),布布扣,bubuko.com
原文地址:http://blog.csdn.net/aspnetx/article/details/26969607