SSAS 2016: ошибка "Ключ атрибута не найден" при обработке измерения после добавления атрибута

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

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

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

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

И также я вижу, что значение "Джастин looks" выглядит странно, но я не могу понять, как это может повлиять на обработку ключа атрибута.

Есть идеи о том, что не так с моим измерением?

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам