Come possiamo creare partizioni cubo SSAS 2008 usando Powershell?Creazione di partizioni cubo SSAS 2008 tramite PowerShell?
risposta
Dai un'occhiata a questo: PowerSSAS
Esso non avere il supporto esplicito partizione aggiuntivo, in modo da probabilmente dovrete forgiare un frammento di XMLA per fare la partizione aggiuntivo e quindi utilizzare PowerSSAS per spingere al server SSAS .
Questo aggiunge una partizione per il cubo Adventure Works DW 2008R2 (in particolare il gruppo di misure Internet clienti nel cubo Adventure Works):
$server_name = "localhost"
$catalog = "Adventure Works DW 2008R2"
$cube = "Adventure Works"
$measure_group = "Fact Internet Sales"
$old_partition = "Customers_2004"
$new_partition = "Customers_2009"
$old_text = "'2008"
$new_text = "'2009"
[Reflection.Assembly]::LoadFile("C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.AnalysisServices.DLL")
$srv = new-object Microsoft.AnalysisServices.Server
$srv.Connect("Data Source=" + $server_name)
$new_part = $srv.Databases[$catalog].Cubes[$cube].MeasureGroups[$measure_group].Partitions[$old_partition].Clone()
$new_part.ID = $new_partition
$new_part.Name = $new_partition
$new_part.Source.QueryDefinition = $new_part.Source.QueryDefinition.Replace($old_text, $new_text)
$srv.Databases[$catalog].Cubes[$cube].MeasureGroups[$measure_group].Partitions.Add($new_part)
$srv.Databases[$catalog].Cubes[$cube].MeasureGroups[$measure_group].Partitions[$new_partition].Update()
$srv.Databases[$catalog].Update()
$srv.Disconnect()
Dovrete modificare le variabili fino in alto, e il riferimento alla l'assembly Microsoft.AnalysisServices.dll
, ma a parte questo, funzionerà peachy acuto.
Il trucco è chiamare Update()
sull'oggetto modificato e quindi sull'intero database stesso.
Se vuoi per elaborare la nuova partizione, così, si può fare con la seguente riga prima di $srv.Disconnect
:
$srv.Databases[$catalog].Cubes[$cube].MeasureGroups[$measure_group].Partitions[$new_partition].Process()
Si può imparare di più su Analysis Management Objects (AMO) here.
è possibile utilizzare:
Microsoft.AnalysisServices.Deployment [ASdatabasefile]
{[/s[:logfile]] | [/a] | [[/o[:output_script_file]] [/d]]}
per distribuire il cubo come con PowerShell.
non risponde alla domanda. –
PowerSSAS potrebbe eseguire questa operazione senza dover creare XMLA. Dovresti solo ottenere un riferimento al gruppo di misure, quindi chiamare il metodo Aggiungi della raccolta di partizioni. –