检查SSAS Cube是否可用,即是否已处理

时间:2014-07-31 12:12:07

标签: ssas olap-cube

我正在寻找一种方法来检查一个多维数据集是否可访问,即它是否被处理而没有被破坏。

示例:我有一个工作的多维数据集,我完全处理了一个共享维度,以便多维数据集被破坏。

是否有任何mdx或xmla方法可以找出哪些多维数据集可访问/处理?

1 个答案:

答案 0 :(得分:3)

有一个XMLA命令DISCOVER_XML_METADATA可以返回其他属性中的数据库状态(进程/未处理)。我没有最好的XMLA处理,所以我不知道如何获得你需要的部分,但是这个查询将以XML的形式返回结果,你可以从那里解析它。

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
    <RequestType>DISCOVER_XML_METADATA</RequestType>
        <Restrictions>
            <RestrictionList>
                <DatabaseID>AdventureWorks2012MD</DatabaseID>
            </RestrictionList>
        </Restrictions>
                <Properties>
                    <PropertyList>
                    </PropertyList>
                </Properties>
            </Discover>

此请求从与SSAS数据库相关的对象中获取名为AdventureWorks2012M的属性。在结果中,您将看到以下内容:

<Database>
          <Name>AdventureWorks2012MD</Name>
          <ID>AdventureWorks2012MD</ID>
          <CreatedTimestamp>2013-08-01T01:41:10.926667</CreatedTimestamp>
          <LastSchemaUpdate>2013-08-01T01:45:05.91</LastSchemaUpdate>
          <Description />
          <LastProcessed>2013-08-01T01:46:39.713333</LastProcessed>
          <State>Processed</State>
          <LastUpdate>2014-01-07T19:41:45.146667</LastUpdate>
          <AggregationPrefix />
          <Language>1033</Language>
          <Collation>Latin1_General_CI_AS</Collation>
          <Visible>true</Visible>
...

您关心该数据库的<State>Processed</State>。您还可以通过将MeasureGroupID或DimensionID添加到限制列表中来获取每个维度和度量值组的状态。