SSAS下玩转PowerShell(二)



上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用PowerShell脚本。

原文地址:

http://www.mssqltips.com/sqlservertip/2939/automate-sql-server-analysis-services-tasks-with-powershell--part-2/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=20140328

在SSAS下使用PowerShell变量

  1. 首先来看下面的代码:

    $mydate="ssas powershell"

    这里我们创建了一个名字为$mydate的变量,$前缀表名这是一个变量,然后给这个变量赋一个值"ssas powershell"。

  2. 如果需要显示变量$mydte的值只需要把变量的名字敲出来然后按ENTER。

    $mydate

  3. 接下来把当前日期赋给这个变量。

    $mydate=Get-Date

    通过Get-Date方法获取到当前日期,并且将其赋给$mydate变量。PowerShell是不需要为变量指定类型的:

  4. 默认显示的日期类型是长类型的,并且格式会遵从服务器的配置格式。通过下面的命令可以将其转换成yyyyddMM的格式:

    $mydate=Get-Date –format yyyyddMM

    MM在这里是大写主要是为了跟分钟的小写mm区分开。

  5. 验证下格式:

    $mydate

    这样我们就获取到了一个格式为yyyyddMM的保存有当前日期的变量。

  6. 接下来需要做的就是根据这个当前时间来创建备份。

    backup-asdatabase d:\awdb-$mydate.abf "AdventureWorksDW2012Multidimensional-EE" -AllowOverwrite –ApplyCompression

    这样一个待用当前时间编辑的文件名备份就被创建在了d盘上。同样在上面的这个命令中,指派了数据库的名称,允许覆盖标记以及是否启用压缩。

使用PowerShell处理SSAS的一个分区

跟上一篇的不同,这里我们用一个变量名引入到命令中,来实现动态的分区处理。

  1. 首先我们来关注下SSAS的分区,查看下图,我们可以看到SSAS数据库的层级极结构:

  2. 接下来我们要处理Internet_Orders_2008这个分区。跟上一篇不同我们通过变量的方式$myyear传送2008这个值到命令中然后处理相应的分区。

    $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脚本

  1. XMLA最主要的一个用途就是创建和处理SSAS对象。在这个示例中我们生成一个脚本来创建分区,然后在PowerShell里执行它。首先,创建一个生成分区"Internet_Orders_2008"的脚本。

  2. 然后,对这个XMLA脚本进行修改,找到标识分区名称为2008的地方,将其改成2009。

    [译注]:原文这里没有提到,就是下面的QueryDefinition对应的那段SQL代码也是需要修改的,所以实际项目中,需要根据实际情况,Name和QueryDefinition都需要修改,这里的修改跟UI界面中的都能对应的上,所以这里不做详细介绍。

  3. 将这段脚本保存下来,比如:d:\powershell2\createPartition.xmla目录,然后用PowerShell的Invoke-ASCMD命令运行这个脚本。

    Invoke-ASCmd -InputFile:"d:\powershell2\createPartition.xmla"

    Invoke-ASCMD命令用于在PowerShell中运行SSAS命令,比如XMLA脚本,应用立方体的MDX脚本以及应用数据挖掘的DMX脚本。如果此时在SSMS中刷新一下SSAS实例,可以看到新创建的分区。

在PowerShell中运行MDX查询

  1. 首先生成一段MDX查询,在SSMS中浏览Adventure Works立方体。

  2. 拖拽Internet Order Count度量值到查询面板中。

  3. 点击设计模式图标就可以看到对应的MDX脚本。

  4. 把脚本拷贝出来然后保存到文本文件中,比如d:\powershell2\" directory。
  5. 用如下命令运行这个mdx脚本。

    Invoke-ASCmd -Database "AdventureWorksDW2012Multidimensional-EE" -InputFile:"d:\powershell2\mymdx.mdx"| Out-file d:\Results\XMLAQueryOutput.xml

    这里我们所做的就是在AdventureWorksDW2012Multidimensional数据库中运行这个MDX查询,查询结果以XML的方式显示在文件XMLAQueryOutput.xml中。

  6. 查询的结果可以在XML文件中找到。

[译注]

原文介绍的都是很简单的操作,但是对于自动化任务来说还是很方便的,不如动态创建分区,动态处理分区等等,变量的引入可以加入更多的程序流程在里面,从而实现更复杂的功能。

SSAS下玩转PowerShell(二),布布扣,bubuko.com

时间: 2024-11-29 06:03:20

SSAS下玩转PowerShell(二)的相关文章

[译]SSAS下玩转PowerShell(二)

上一篇中简单的介绍了SSAS下的PowerShell,这一篇会演示更多的操作,比如根据当前时间创建备份,使用变量去指定处理哪一个分区,以及用XMLA脚本去创建分区,和在PowerShell中调用PowerShell脚本. 原文地址: http://www.mssqltips.com/sqlservertip/2939/automate-sql-server-analysis-services-tasks-with-powershell--part-2/?utm_source=dailynewsl

SSAS下玩转PowerShell

 操作SSAS数据库的方法有很多,是否有一种可以方法可以通过脚本自动去做这些事呢,比如处理分区,创建备份以及监视SSAS的运行状况. 原文地址: http://www.mssqltips.com/sqlservertip/2937/using-powershell-for-sql-server-analysis-services-tasks--part-1/ PowerShell作为命令行工具来自动化处理SSAS任务就是一个不错的选择.因为是围绕SSAS处理任务的话题,所以阅读此篇需要具备一

SSAS下玩转PowerShell(三)

 在第一篇中简单介绍了PowerShell,包含基本的一些命令,以及如何打开PowerShell,并且导航到SSAS对象.第二篇中学习了如何使用变量根据当前日期创建SSAS备份,以及如何运行MDX和XMLA脚本. 原文地址: http://www.mssqltips.com/sqlservertip/2980/using-powershell-for-ssas-to-check-service-status-and-database-availability/ 在这一篇中,主要介绍以下几个话

[译]SSAS下玩转PowerShell(三)

在第一篇中简单介绍了PowerShell,包含基本的一些命令,以及如何打开PowerShell,并且导航到SSAS对象.第二篇中学习了如何使用变量根据当前日期创建SSAS备份,以及如何运行MDX和XMLA脚本. 原文地址: http://www.mssqltips.com/sqlservertip/2980/using-powershell-for-ssas-to-check-service-status-and-database-availability/ 在这一篇中,主要介绍以下几个话题:

[译]SSAS下玩转PowerShell

操作SSAS数据库的方法有很多,是否有一种可以方法可以通过脚本自动去做这些事呢,比如处理分区,创建备份以及监视SSAS的运行状况. 原文地址: http://www.mssqltips.com/sqlservertip/2937/using-powershell-for-sql-server-analysis-services-tasks--part-1/ PowerShell作为命令行工具来自动化处理SSAS任务就是一个不错的选择.因为是围绕SSAS处理任务的话题,所以阅读此篇需要具备一些SS

windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) 简单说几句 在mongodb中3元素:db(数据库).collection(集合).document(文档) 其中collection类似于数据库中的表,document类似于行,这样一来我们就将内容对比起来记忆学习了. 数据格式 MongoDB documents是BSON格式(一种类json的一种二进制形式的存

windows下mongodb基础玩法系列二CURD附加一

windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下mongodb基础玩法系列二CURD附加一 说在前面的话 在系列二中CURD只是简单的走了一下代码操作的流程,其中全是简单基础操作的内容, 在我仔细看完接下来的内容后决定再丰富一下前面的操作,并实战一个简单的demo出来,demo具体搭配语言暂时决定在PHP与nodejs之间. 增加内容至文档没说完

SQL Server调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行)

原文:SQL Server调优系列玩转篇二(如何利用汇聚联合提示(Hint)引导语句运行) 前言 上一篇我们分析了查询Hint的用法,作为调优系列的最后一个玩转模块的第一篇.有兴趣的可以点击查看:SQL Server调优系列玩转篇(如何利用查询提示(Hint)引导语句运行) 本篇继续玩转模块的内容,同样,还是希望扎实掌握前面一系列的内容,才进入本模块的内容分析. 闲言少叙,进入本篇的内容. 技术准备 数据库版本为SQL Server2012,利用微软的以前的案例库(Northwind)进行分析,

玩转PowerShell第一节——后台任务处理-技术&分享

1.什么时候会用到后台任务 当本地机器需要执行一个动作,此动作需要耗费很长时间,而机器在这段时间内只能等待,而我们希望在机器等待的这段时间内,我们还可以做其他事情. 这样我们就可以用后台任务来解决上面遇到的问题. 2.后台任务主要用在哪些场景,举例说明 (1)将文件拷贝到多台远程机器,可以开启多个任务进行并行拷贝 (2)多台远程机器同时安装文件,可以开启多个任务进行并行安装 3.PowerShell里面怎么开启后台任务 (1)Start-Job #$StartJob = Start-Job -S