SSAS - можно ли добавить атрибут к существующему измерению с повторной развертыванием всего куба

StackOverflow https://stackoverflow.com/questions/4317288

Вопрос

У меня есть измерение 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>

Какие-либо предложения?

Это было полезно?

Решение

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

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

Другие советы

«Напомним, что хранение режима RoLAP означает, что данные источника не скопированы в пункт назначения SSAS. Другая характеристика хранения раздела RoLAP - это то, что агрегаты записываются обратно к реляционным столам в исходной схеме».

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

«Хотя это требует предприятия ССАС»

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top