首頁 資料庫 mysql教程 SSAS下玩转PowerShell(二)

SSAS下玩转PowerShell(二)

Jun 07, 2016 pm 03:56 PM
powershell 簡單

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

上一篇中简单的介绍了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变量

首先来看下面的代码:

$mydate="ssas powershell"

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

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

$mydate

\

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

$mydate=Get-Date

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

\

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

$mydate=Get-Date –format yyyyddMM

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

验证下格式:

$mydate

\

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

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

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

\

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

\

使用PowerShell处理SSAS的一个分区

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

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

\

接下来我们要处理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脚本

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

\

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

\

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

将这段脚本保存下来,比如: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查询

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

\

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

\

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

\

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

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

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

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

\

[译注]

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

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
無法刪除在系統中開啟的 ISO 檔案:如何修復 無法刪除在系統中開啟的 ISO 檔案:如何修復 Apr 16, 2023 pm 02:25 PM

什麼是 ISO 檔? ISO 檔案是一種包含光碟(例如 DVD 或 CD)的精確副本的檔案。這種類型的光碟映像可以安裝在您的電腦上,看起來就像您的電腦上連接了一個光碟機,光碟中插入了包含資料的 CD 或 DVD。 ISO 檔案也可用於刻錄建立它們的 DVD 或 CD 的新副本,或只是將大量檔案包含在一個易於下載的單一檔案中。 ISO 檔案通常相當大;用完它們後,您很可能會想將它

最簡單的硬碟序號查詢方式 最簡單的硬碟序號查詢方式 Feb 26, 2024 pm 02:24 PM

硬碟序號是硬碟的一個重要標識,通常用於唯一標識硬碟以及進行硬體識別。在某些情況下,我們可能需要查詢硬碟序號,例如在安裝作業系統、尋找正確裝置驅動程式或進行硬碟維修等情況下。本文將介紹一些簡單的方法,幫助大家查詢硬碟序號。方法一:使用Windows命令提示字元開啟命令提示字元。在Windows系統中,按下Win+R鍵,輸入"cmd"並按下回車鍵即可開啟命

PowerShell滲透測試利器Nishang怎麼用 PowerShell滲透測試利器Nishang怎麼用 May 13, 2023 am 10:58 AM

初始PowerShell,首先我們先來了解概念:PowerShell可以當做是cmd(bat腳本語言)的升級版,它是Windows平台上的腳本語言。是面向對象,是和.NetFrameWork密切相關的。也可以認為是Windows上的bashshell。 WindowsPowerShell是一種命令列外殼程式和腳本環境,可讓命令列使用者和腳本編寫者利用.NETFramework的強大功能。它引入了許多非常有用的新概念,從而進一步擴展了您在Windows命令提示字元和WindowsHost環境中獲得

修正:Windows 11/10 中無法開啟 PowerShell 或 PowerShell 已停止工作問題 修正:Windows 11/10 中無法開啟 PowerShell 或 PowerShell 已停止工作問題 Apr 24, 2023 pm 07:49 PM

許多用戶報告了WindowsPowerShell停止工作或根本無法打開的問題。看到PowerShell已停止工作訊息的最常見原因之一是您的電腦上存在隱藏病毒。這反過來會減慢您的系統速度,並且系統上的其他進程將停止運行。該錯誤訊息未提供有關此問題原因的任何信息,因此難以解決。如果您對PowerShell無法在您的PC上執行或開啟問題感到惱火,那麼本文適合您。在本文中,我們討論了一些可用於修復此錯誤的解決方案。修復1–停用和重新啟用WindowsPowerShell1.使用Ctr

如何在 Windows 11 上啟用管理員帳戶 如何在 Windows 11 上啟用管理員帳戶 Apr 15, 2023 pm 07:46 PM

如何使用PowerShell在Windows11上啟用或停用管理員帳戶在Windows11上啟用管理員帳戶的最快方法之一是使用PowerShell。您也可以使用較新的Windows終端,或者,如果您願意,也可以使用較舊的命令提示字元(cmd)工具。您需要確保從已經具有管理員權限的使用者帳戶執行這些命令。如果您使用的是標準使用者帳戶,則需要切換到另一個使用者帳戶才能執行此工具。若要在Windows11上使用PowerShell啟用管理員帳戶:透過點選開始按鈕或按Windows鍵開啟

如何在 Windows 11 上以管理員身分開啟 PowerShell 如何在 Windows 11 上以管理員身分開啟 PowerShell May 10, 2023 pm 06:40 PM

如何在Windows11上以管理員身分開啟PowerShell以提升或管理員等級的權限執行PowerShell允許您執行繞過Windows檔案保護的命令,例如用於Windows安裝檔案的命令。您可以透過直接開啟PowerShell或開啟新的Windows終端應用程式來執行PowerShell,該應用程式預設使用PowerShell運行命令。在Windows11上以管理員身分開啟PowerShell:開啟開始功能表並輸入powershell或terminal。從右側的

PowerShell 部署失敗並出現 HRESULT 0x80073D02 問題修復 PowerShell 部署失敗並出現 HRESULT 0x80073D02 問題修復 May 10, 2023 am 11:02 AM

您在執行腳本時是否看到此錯誤訊息「Add-AppxPackage:部署失敗,HRESULT:0x80073D02,無法安裝該包,因為它修改的資源目前正在使用中。PowerShell中出現錯誤0x80073D02…」?如錯誤訊息所述,當使用者在前一個進程執行時嘗試重新註冊一個或所有WindowsShellExperienceHost應用程式時,確實會發生這種情況。我們已經獲得了一些簡單的解決方案來快速解決這個問題。修復1–終止體驗主機程序您必須在執行powershell指令之前結束

powershell和cmd的差別是什麼 powershell和cmd的差別是什麼 Jan 11, 2023 pm 02:23 PM

區別:1、運行Cmd時,只需佔用不到1M的記憶體;而用PowerShell時,需要佔用大約20M的記憶體。 2、Cmd不支援語法高亮,PowerShell支援。 3.用Cmd運行一些較為複雜、較耗時的命令時,隨意拖曳命令列視窗時,視窗中的內容依然能夠保持原樣;但PowerShell不行。 4.Cmd只能不能使用.net庫中的指令,也不能使用Linux指令;而PowerShell可以。

See all articles