使用Powershell创建SSAS 2008多维数据集分区?

7

我们如何使用Powershell创建SSAS 2008立方体分区?

3个回答

6

这将向Adventure Works DW 2008R2立方体(具体来说是Adventure Works立方体中的Internet Customers度量组)添加一个分区:

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

你需要更改顶部的变量和对Microsoft.AnalysisServices.dll程序集的引用,但除此之外,这将完美运行。
关键是在更改对象后调用Update(),然后在整个数据库上调用Update()。
如果你想处理新分区,可以在$srv.Disconnect之前使用以下代码:
$srv.Databases[$catalog].Cubes[$cube].MeasureGroups[$measure_group].Partitions[$new_partition].Process()

您可以在这里了解更多有关分析管理对象(AMO)的信息


1

看看这个:PowerSSAS

它没有显式的添加分区支持,所以你可能需要编写一个XMLA片段来执行添加分区,然后使用PowerSSAS将其推送到SSAS服务器。


1
PowerSSAS可以在不需要编写XMLA的情况下完成此操作。您只需要获取对度量组的引用,然后调用分区集合的Add方法即可。 - Darren Gosbell

-2
你可以使用:
Microsoft.AnalysisServices.Deployment [ASdatabasefile] 
{[/s[:logfile]] | [/a] | [[/o[:output_script_file]] [/d]]}

使用PowerShell部署您的立方体AS。


不回答问题。 - Mitch Wheat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接