2016-12-04 12 views
0

Предположим, у меня есть измерение DIM_Users с двумя атрибутами UserId [bigint] и Reputation [int]. В этом случае я могу успешно обработать таблицу.SSAS 2016: «Ключевой атрибут не может быть найден» ошибка при обработке измерение после добавления атрибута

enter image description here

Но, после того, как я добавить DisplayName [nvarchar(255)] атрибут измерения, обработка завершается с следующим сообщением:

Ошибки в двигателе хранения OLAP: Ключ атрибута не может быть найден при обработке: Таблица: 'cube_DIM_Users', Column: 'DisplayName', Значение: 'Justin ᚅᚔᚈᚄᚒᚔ'. Атрибут «Отображаемое имя».

enter image description here

Сравнение скриншотов я заметил, что впервые были обработаны 5987286 UserIds (что правильное значение), но второй раз только 70000.

А также я вижу, что значение «Justin ᚅᚔᚈᚄᚒᚔ» выглядит странно, но я не могу понять, как это может повлиять на обработку ключа атрибута.

Любые идеи о том, что не так с моим измерением?

Я нашел this статью, но это не поможет.

ответ

1

Похоже, эта проблема вызвана несоответствием сортировки между вашим источником данных и ssas. Вы получите лучшее понимание возможных проблем с сортировкой, если вы запускаете код sql, например SELECT DISTINCT UserId FROM yourTable WHERE UserId LIKE 'Justin%'. Должно быть более одной записи, что потенциально вызывает проблемы с сортировкой.

Попробуйте следующее обходное решение, если ваш атрибут «Идентификатор пользователя» уникален. Добавьте искусственный уникальный ключ для каждой строки UserId в таблицу размеров, например. инкрементирующее целое число. Назначьте этот созданный ключ в ключевой столбец вашего атрибута и назначьте свой «UserId» в столбец имен.

Подсказка: если вы расширяете свойства столбца атрибута атрибута в измерении ssas, вы также можете изменить сортировку ssas, используемую для обработки. Я пробовал это в прошлом, но иногда он не решал проблемы с сортировкой для меня.

+0

Спасибо, что спасли меня от последующих страданий :) –