2011-12-22 5 views

Respuesta

1

Salida esto: PowerSSAS

No contar con el apoyo explícito de añadir la partición, por lo que es probable que tenga para elaborar un fragmento XMLA para hacer la partición complemento y luego usar PowerSSAS para empujarlo al servidor SSAS .

+1

PowerSSAS podría hacerlo sin tener que crear XMLA. Solo necesita obtener una referencia al grupo de medida y luego llamar al método Agregar de la colección de particiones. –

6

Esto añade una partición al cubo Adventure Works DW 2008R2 (en concreto el grupo de medida Internet Clientes en el 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() 

Vas a tener que cambiar las variables en lo alto, y la referencia a el ensamblaje Microsoft.AnalysisServices.dll, pero aparte de eso, esto funcionará bien afilado.

El truco es llamar al Update() en el objeto modificado y luego en toda la base de datos.

Si desea procesar la nueva partición, así, se puede hacer eso con la siguiente línea antes de $srv.Disconnect:

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

Usted puede aprender más acerca de administración de análisis (AMO) here.

-2

puede utilizar:

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

para desplegar su cubo como con PowerShell.

+0

no responde la pregunta. –

Cuestiones relacionadas