SSAS - возможно ли добавить атрибут к существующему измерению без повторного развертывания всего куба - PullRequest
1 голос
/ 30 ноября 2010

У меня есть измерение Entity только с атрибутами Key и Value. Нам нужно добавить новый атрибут IsSpecial с элементом по умолчанию [False].

Когда я пытаюсь запустить xmla, я получаю следующую ошибку:

Ошибки в менеджере метаданных. куб с идентификатором '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>

Есть предложения?

Ответы [ 2 ]

2 голосов
/ 02 декабря 2010

Я сомневаюсь, что есть способ сделать это.
При изменении модели измерения вы также изменяете кубы, которые используют это измерение. Без повторного развертывания всего куба менеджер метаданных не знает об изменениях в кубе.

Такая же ситуация возникает при онлайн-изменении размеров в BIDS - соответствующие кубы затрагиваются, поэтому их необходимо развернуть снова.

0 голосов

"Напомним, что хранилище в режиме раздела ROLAP означает, что исходные данные не являются скопированы в пункт назначения SSAS. Другая особенность хранения разделов ROLAP заключается в том, что агрегаты записываются обратно в реляционные таблицы в исходной схеме. "

"Чтобы установить измерение в качестве измерения ROLAP, откройте редактор измерений в BIDS и в окне свойств этого измерения измените свойство StorageMode со значения по умолчанию MOLAP на ROLAP"

"хотя для этого требуется Enterprise Ed из SSAS"

...