您的位置:首页 > 运维架构 > Shell

Add new partition for analysis services by powershell

2012-12-23 23:52 603 查看
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.AnalysisServices");

$ASConnectionString = "Data Source = lewis-server ; Initial Catalog = CapitalDW ; Provider = MSOLAP; Impersonation Level = Impersonate " ;

$ASServer = New-object Microsoft.AnalysisServices.Server ;

$ASServer.connect($ASConnectionString);

##get-content Variable::ASConnectionString

##get-content Variable::ASServer

$DatabaseName = "CapitalDW"

$DatabaseID = $ASServer.Databases.FindByName($DatabaseName).ToString() ;

##get-content Variable::DatabaseID;

write-host "Databaseid:$DatabaseID";

##Cube

$dbName = $ASServer.Databases[$DatabaseID];

##get-content Variable::dbName

$cubeName = "Capital DW" ;

$cubeId = $dbName.cubes.FindByName($cubeName).ToString();

$measuregroupName = "Capital History" ;

$measuregroupid = $dbName.cubes[$cubeID].Measuregroups.FindByName($measuregroupName).ToString();

write-host "measuregroupid is : $measuregroupid ";

$newPartitionName = "Capital History 2012";

$sourceID = $dbName.cubes[$cubeID].Measuregroups.FindByName($measuregroupName).Partitions.FindByName("Capital History 2011").DataSource.ToString();

write-host "data source id : $sourceID";

$partition= $dbName.cubes[$cubeID].Measuregroups.FindByName($measuregroupName).Partitions.Add($newPartitionName);

$partition.Source = new-object Microsoft.AnalysisServices.QueryBinding( "$sourceID", "SELECT [dbo].[CapitalHistory].[itm_system_ky],[dbo].[CapitalHistory].[capital_value],[dbo].[CapitalHistory].[PK_Date]

FROM [dbo].[CapitalHistory]

WHERE pk_date>='2012-01-01' and pk_date<'2013-01-01'" );

$dbName.cubes[$cubeID].Measuregroups.FindByName($measuregroupName).Partitions.FindByName($newPartitionName).update();

write-host "new partition: $partition"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐