【问题标题】:Efficient way to get related Measure Groups given a Dimension in VB.NET在 VB.NET 中获取给定维度的相关度量组的有效方法
【发布时间】:2012-03-31 03:06:51
【问题描述】:

我正在使用 VB.NET 连接并解析来自 Analysis Services 数据库的数据。

我遇到的问题是在尝试查找与给定维度相关的所有度量组时。我一直在研究 API,Dimensions 似乎根本没有任何关于 Measure Groups 的信息,但 Measure Groups 可以包含Dimensions。

如果我想获得给定度量组 (measureGroup.Dimensions) 的相关维度列表,这很容易,但我正在寻找的是相反的。

我唯一能想到的就是遍历多维数据集中的所有度量组并检查它是否包含对相关维度的引用:

Dim dimID As String = "SOME_DIM_ID"
Dim relatedMeasureGroups As New List(Of Amo.MeasureGroup)
For Each mg As Amo.MeasureGroup In _cube.MeasureGroups
    If mg.Dimensions.Contains(dimID) Then
        relatedMeasureGroups.Add(mg)
        Continue For
    End If
Next

这可行,但显然非常缓慢且效率低下。有没有更直接的方法,我只是没有看到?


编辑:我应该说,我需要这样做,因为我试图找到所有潜在的many-to-many Measure Groups for a Dimension。如您所知,我这样做的方式有点手动(查找与初始维度相关的度量组,查找与它们相关的所有维度,然后再次查找与那些相关的所有度量组),所以如果有更直接的方法来解决这个问题,它可以绕过我解决原始问题的需要。

【问题讨论】:

    标签: vb.net ssas data-warehouse


    【解决方案1】:

    您可以查询 SSAS DMV... $SYSTEM.MDSCHEMA_MEASUREGROUP_DIMENSIONS

    SELECT  *
    FROM    $SYSTEM.MDSCHEMA_MEASUREGROUP_DIMENSIONS
    WHERE   MEASUREGROUP_CARDINALITY = 'MANY' AND
            DIMENSION_CARDINALITY = 'MANY' AND
            [DIMENSION_UNIQUE_NAME] = '[Business Unit]'
    

    另外,这可能会派上用场 --> http://www.ssas-info.com/VidasMatelisBlog/wp-content/uploads/2008/07/mdschema.jpg

    这是 XMLA 版本...

    <Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
        <RequestType>MDSCHEMA_MEASUREGROUP_DIMENSIONS</RequestType>
        <Restrictions>
            <RestrictionList xmlns="urn:schemas-microsoft-com:xml-analysis">
                <DIMENSION_UNIQUE_NAME>[<<insert dimension>>]</DIMENSION_UNIQUE_NAME>
            </RestrictionList>
        </Restrictions>
        <Properties/>
    </Discover>
    

    【讨论】:

    • 这看起来很有希望,但经过更多挖掘后,我无法假设客户将拥有"system administrator permissions on the Analysis Services instance."
    • 感谢所有帮助。我相信这是正确的道路,但我仍然有一些困难。如果还不是很明显,那么在涉及 SSAS 的东西时,我是非常绿色的。 :P XMLA 方法部分有效,但对任何 MDSCHEMA 类型的每个查询似乎都没有返回任何实际行。相反,我只得到 xsd 定义。例如,查询 MDSCHEMA_CUBES 返回this,它实际上并没有告诉我服务器上的任何多维数据集。我还缺少其他东西吗?
    • 为了清楚起见,我在查询中提供了一个目录名称,因为我已经看到一些关于这可能是一个问题的帖子。当我查询 DBSCHEMA_CATALOGS 时,目录显示正常,但是该目录上的任何 MDSCHEMA 查询似乎都没有返回任何内容。在 SQL Server Management Studio 中尝试 MDX 查询时遇到同样的问题(返回 0 行)。
    • 啊,看来我只需要在 BI 中处理我的 Cube。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多