操作SSAS数据库的方法有很多,是否有一种可以方法可以通过脚本自动去做这些事呢,比如处理分区,创建备份以及监视SSAS的运行状况。
原文地址:
PowerShell作为命令行工具来自动化处理SSAS任务就是一个不错的选择。因为是围绕SSAS处理任务的话题,所以阅读此篇需要具备一些SSAS的基础知识,这里我们使用SQL Server 2012。
此篇将介绍如下内容:
本文使用SQL Server 2012的Adventureworks示例数据库,有可以在这里下载到这个示例库:
http://msftdbprodsamples.codeplex.com/releases/view/55330
开始
GCI命令的含义是获取所有子对象,跟DOS时代下的dir命令很像,所以这里你也可以同样可以使用LS或者DIR获取同样的结果。从结果中可以看到,SQL Server PowerShell可以让你自动以自动化的方式去处理SQL Server数据引擎的任务,策略,数据集,SQL Server集成服务任务以及SQL Server分析服务任务。此篇我们将集中SSAS任务。
CD sqlas
这里的CD命令跟DOS下的相同。
get-help gci –detailed
分区操作
SSAS多维数据库下包含Cubes立方体,Cubes下又包含度量值以及度量值分区。下图展示了其层次结构。
接下来使用CD命令移动到分区目录下。
cd servername\DEFAULT\databases\AdventureWorksDW2012Multidimensional-EE\cubes\Adventure Works\MeasureGroups\Internet Orders\Partitions
使用分区对数据进行拆分,可以通过并行的方法提高处理的速度,并且对于相关的查询性能也会有提高。
接下来通过GCI命令列出所有的分区信息.
我们可以看到分区名称,估计行数以及处理的模式。在Adventureworks立方体中分区是按照年来进行拆分的。每个分区的行数默认是没有被计算的所以看到的是0。处理模式是分区的处理方式,Regular模式意味着数据和聚合都会被处理,另外一种Lazy聚合意味着数据首先会被处理,聚合在随后的后台进程创建。这个设置对数据以及降低索引创建是非常有帮助的,因为索引的创建会有额外的性能开销。
可以通过Get-member的方法获取分区下的所有成员。
LS | Get-Member
Get-Member命令用于列出一个对象支持的属性和方法。在这里就是列出分区下所支持的属性和方法。
比如可以看到分区名,LastProcessed时间以及分区的EstimatedSize:
LS| SELECT NAME, LASTPROCESSED, ESTIMATEDSIZE
如果要处理一个指定的分区那么就可以使用下面的命令:
Invoke-ProcessPartition -Name "Internet_Orders_2006" -MeasureGroupname "Internet Orders" -CubeName "Adventure Works" -database "AdventureWorksDW2012Multidimensional-EE" -ProcessType "ProcessFull"
这个命令会处理Adventureworks下Internet Orders度量值组名为"Internet_Order_2006"的分区,并且是以全量的方式来处理。
在SQL Server 2012 SP1的这个版本,当我们运行完这个命令然后再运行"LS|SELECT NAME, LASTPROCESSED, ESTIMATEDSIZE",默认信息是没有更新的。需要把PowerShell关闭掉然后再重新打开再运行这个命令才可以看到更新后的信息。
备份SSAS数据库
运行下面的命令可以实现Adventureworks的备份:
backup-asdatabase d:\awdb-20110930.abf "AdventureWorksDW2012Multidimensional-EE" -AllowOverwrite –ApplyCompression
这个命令会备份AdventureWorksDW2012Multidimensional-EE数据库,备份文件名为awdb-20110930.abf,并且存储在d盘根目录下。这个命令同样也会覆盖已经存在的同名备份文件。
此篇演示了如何启动PowerShell,如何显示对象下的属性,如何处理一个分区以及最后如何备份一个数据库。下一篇会介绍PowerShell在SSAS下的更多操作。
译注:
SSAS的对象的层次结构比较复杂,具体该如何进行导航或者在某些对象下能做什么,需要对SSAS数据库的基本结构有一个了解。
PowerShell操作SSAS的方式也是通过AMO的方式,方便通过基于.net的方式来进行操作。
SSAS下玩转PowerShell,布布扣,bubuko.com
原文:http://blog.csdn.net/aspnetx/article/details/26882255