SSAS - 是不是可以在不重新部署整个多维数据集的情况下将属性添加到现有维度

Posted

技术标签:

【中文标题】SSAS - 是不是可以在不重新部署整个多维数据集的情况下将属性添加到现有维度【英文标题】:SSAS - Is it possible to add an attribute to an existing dimension w/o redeploying the entire cubeSSAS - 是否可以在不重新部署整个多维数据集的情况下将属性添加到现有维度 【发布时间】:2010-11-30 18:48:48 【问题描述】:

我有一个维度Entity,只有KeyValue 属性。我们需要添加一个新属性IsSpecial,默认成员为[False]

当我尝试运行 xmla 时,出现以下错误:

元数据管理器中的错误。这 ID 为“X”的多维数据集,名称 'Y' 被无效 事务中的操作。

这是用于更改维度的 XMLA 片段

<Dimension>
    <ID>Dim Entity</ID>
    <Name>Entity</Name>
    <UnknownMemberName>Unknown</UnknownMemberName>
    <Attributes>
        <Attribute>
            <ID>Dim Entity</ID>
            <Name>Entity</Name>
            <Usage>Key</Usage>
            <EstimatedCount>119</EstimatedCount>
            <KeyColumns>
                <KeyColumn>
                    <DataType>Integer</DataType>
                    <Source xsi:type="ColumnBinding">
                        <TableID>shared_DimEntity</TableID>
                        <ColumnID>EntityKey</ColumnID>
                    </Source>
                </KeyColumn>
            </KeyColumns>
            <NameColumn>
                <DataType>WChar</DataType>
                <DataSize>32</DataSize>
                <Source xsi:type="ColumnBinding">
                    <TableID>shared_DimEntity</TableID>
                    <ColumnID>EntityValue</ColumnID>
                </Source>
            </NameColumn>
            <AttributeRelationships>
                <AttributeRelationship>
                    <AttributeID>IsSpecial</AttributeID>
                    <Name>IsSpecial</Name>
                </AttributeRelationship>
            </AttributeRelationships>
        </Attribute>
        <Attribute>
            <ID>IsSpecial</ID>
            <Name>IsSpecial</Name>
            <KeyColumns>
                <KeyColumn>
                    <DataType>Boolean</DataType>
                    <Source xsi:type="ColumnBinding">
                        <TableID>shared_DimEntity</TableID>
                        <ColumnID>IsShadowTracking</ColumnID>
                    </Source>
                </KeyColumn>
            </KeyColumns>
            <NameColumn>
                <DataType>WChar</DataType>
                <Source xsi:type="ColumnBinding">
                    <TableID>shared_DimEntity</TableID>
                    <ColumnID>IsShadowTracking</ColumnID>
                </Source>
            </NameColumn>
            <DefaultMember>[Entity].[IsSpecial].[False]</DefaultMember>
        </Attribute>
    </Attributes>
    <Hierarchies>
        <Hierarchy>
            <ID>Hierarchy</ID>
            <Name>Hierarchy</Name>
            <Levels>
                <Level>
                    <ID>IsSpecial</ID>
                    <Name>IsSpecial</Name>
                    <SourceAttributeID>IsSpecial</SourceAttributeID>
                </Level>
            </Levels>
        </Hierarchy>
    </Hierarchies>
</Dimension>

有什么建议吗?

【问题讨论】:

【参考方案1】:

我怀疑有办法做到这一点。 更改维度模型时,您还可以修改使用该维度的多维数据集。如果不重新部署整个多维数据集,元数据管理器就不会知道多维数据集的变化。

在线更改 BIDS 中的维度时也会出现同样的情况 - 相应的多维数据集受到影响,因此需要再次部署它们。

【讨论】:

【参考方案2】:

"回想一下,ROLAP 分区模式存储意味着源数据不是 复制到 SSAS 目标。 ROLAP 分区存储的另一个特点是 聚合被写回到源模式中的关系表中。”

“要将维度设置为 ROLAP 维度,请在 BIDS 中打开维度编辑器,然后在该维度的“属性”窗口中将 StorageMode 属性从默认的 MOLAP 更改为 ROLAP”

“虽然这需要 SSAS 企业版”

【讨论】:

这与问题无关

以上是关于SSAS - 是不是可以在不重新部署整个多维数据集的情况下将属性添加到现有维度的主要内容,如果未能解决你的问题,请参考以下文章

BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析

SSAS 多维数据集处理

在 SQL Server Management Studio 中将我的多维数据集从 Visual Studio 2019 部署到 SSAS 时遇到问题

处理 SSAS 多维数据集时发生异常 [重复]

如何以编程方式检查 SSAS 数据库/多维数据集是不是正在处理?

SSAS - 日期维度在不合适的地方显示未来值