之前當DBA時,有看過XMLA的格式,但覺得長的跟XML幾乎一樣的東西,我要拿來作什,XML不是通常做為資料交換的標準,要不就是當作Configuration Files嗎?又不能拿來當作命令執行,所以忽略它了,就因為當時我沒深入研究它
如今身為BI Engineer,又再次接觸XMLA,才知道它是基於SOAP的XML協定,還是OLAP的工業標準呢!Microsoft,Hyperion與SAS都支援它喔,透過XMLA就可以跟OLAP溝通
講了兩段廢話你還不知道它好處在哪,它好處就是可以REUSE喔,好的DBA會準備大量T-SQL的Best Practice,用意也是要能重複使用,所以需要開發OLAP的人,也應該有效利用XMLA喔,而且Microsoft很好心,使用SSMS就可以直接編輯並執行XMLA喔,非常方便呢
我這邊介紹幾個我覺得很簡單且實用的範例,幾乎是直接用SSMS就可以產生了囉
第一個就是Cube的[Process],用SSMS連到Analysis Services,對某個Database按右鍵,選[Process]
在[Process Database]視窗下,直接點選[Script]
就會幫你產生如下的xmla喔,就可以存成Process.xmla,之後要處理哪個Cube就可以直接用,改藍色粗體字的地方就可以了,很簡單
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<Object>
<DatabaseID>AdventureWorksDW2012Multidimensional-EE</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
要怎麼執行xmla也很簡單,直接按[F5],或是點選工具列上的[View]/[Toolbars]/[SQL Server Analysis Services Editors],如下圖
就會多出可以在xmla編輯器上按Execute的Toolbar囉,如下圖
在Result窗格看到下圖的訊息就代表執行成功囉
我是建議當需要手動處理Cube時,可以利用Remote Desktop連到SSAS,然後在AS上用SSMS執行剛剛的Process.xmla,會比起用SSMS直接對Cube的Database按右鍵Process來講,執行更迅速,執行進程都有保留,非常推薦這樣用
接著兩個範例是備份與還原,詳細可參考備份、還原和同步處理資料庫 (XMLA)
下面是Backup
<Backup xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>AdventureWorksDW2012Multidimensional-EE</DatabaseID>
</Object>
<File>D:\OLAP\AdventureWorksDW2012Multidimensional-EE_20130827.abf</File>
<AllowOverwrite>true</AllowOverwrite>
</Backup>
下面是Restore
<Restore xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<File>E:\OLAP\AdventureWorksDW2012Multidimensional-EE_20130827.abf</File>
<DatabaseName>AdventureWorksDW2012Multidimensional-EE</DatabaseName>
<AllowOverwrite>true</AllowOverwrite>
<DbStorageLocation xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100/100">D:\OLAP\STAGING</DbStorageLocation>
</Restore>
最後是Clear Cache,效能測試會用到的
<ClearCache xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>AdventureWorksDW2012Multidimensional-EE</DatabaseID>
</Object>
</ClearCache>
然後xmla可以做的事其實很多,微軟提供的文件很多,但都很零散就是了,以下連結供參考
0 意見:
張貼留言