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 для обработки. Я пробовал это в прошлом, но иногда это не решало проблемы, связанные с сопоставлением для меня.