2011-12-22 22 views

Odpowiedz

1

Sprawdź to: PowerSSAS

Nie ma wyraźnego wsparcia partycji add, więc prawdopodobnie będziesz musiał spreparować to fragment XMLA zrobić partycję Dodaj, a następnie użyć PowerSSAS pchnąć go do serwera SSAS .

+1

PowerSSAS może to zrobić bez konieczności wykonywania XMLA. Wystarczy uzyskać odwołanie do grupy miar, a następnie wywołać metodę Add zestawu partycji. –

6

Dodaje partycję do sześcianu Adventure Works DW 2008R2 (w szczególności klientów korzystających z Internetu grupa miar w Adventure Works kostkę):

$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() 

Musisz zmienić zmienne w górę szczyt, a odniesienie do zespół Microsoft.AnalysisServices.dll, ale poza tym będzie działał brzoskwiniowo.

Sztuką jest wywołanie Update() na zmienionym obiekcie, a następnie na całej bazie danych.

Jeśli chcesz przetwarzać nową partycję, jak dobrze, że można zrobić z poniższej linii przed $srv.Disconnect:

$srv.Databases[$catalog].Cubes[$cube].MeasureGroups[$measure_group].Partitions[$new_partition].Process() 

Możesz dowiedzieć się więcej o Analysis Management Objects (AMO) here.

-2

można użyć:

Microsoft.AnalysisServices.Deployment [ASdatabasefile] 
{[/s[:logfile]] | [/a] | [[/o[:output_script_file]] [/d]]} 

aby wdrożyć kostki jak z PowerShell.

+0

nie odpowiada na pytanie. –