Add new partition for analysis services by powershell

来源:互联网 发布:windows kvm虚拟机 编辑:程序博客网 时间:2024/06/10 15:42
[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"


原创粉丝点击