2013-07-22 3 views
3

Один из нашего производства куба не удалось со следующим сообщением об ошибке:ссылочной целостности ошибка обработки измерений для куба

Источник: Analysis Services Выполнение DDL задач Analysis Services Выполнение DDL Задача Описание: Ошибки в двигателе хранения OLAP : Ключ атрибута не может быть найден при обработке: Таблица: 'dbo_vw_FACT_OperationalTimeSheetData', Column: 'CurrentHomeLaborOrg', Значение: '117-MARKETPLACE-38'. Атрибут «KeyOrganisation». Конец Предупреждение Предупреждение: 2013-07-22 06: 26: 07,51 Код: 0x811F0002
Источник: Analysis Services Выполнение DDL задач Analysis Services Выполнение DDL задач Описание: Ошибки в двигателе хранения OLAP: Ключ атрибут превращали в неизвестный член, потому что атрибут ключ не найден. Атрибут KeyOrganisation размерности: Current Home Организация из базы данных: LadbrokesReporting2005, Cube: MIS Clone, Измерить Группа: Kronos Time Sheet, Раздел: 201307, Запись: 179774. Конец Предупреждение

На обширных поисков Google для выше сообщения об ошибке. Я узнал, что это связано с ссылочной целостностью, т. е. некоторые строки в таблице фактов не могут быть связаны с таблицей измерений. В моем предыдущем анализе я понял, что для некоторых значений, подобных приведенным выше в сообщении об ошибке «117-MARKETPLACE-38» в таблице фактов, формат в таблице измерений был «117_Marketplace_38». Тем не менее, я раскопал некоторые поразительные факты: -

  1. Запроса для вида, который заполняет тот факт, преобразует данные Inthe формата «117-ТОРГОВЫЕ-38». Формат данных в исходных таблицах равен «117_Marketplace_38».

  2. Есть много других записей в формате «117-Marketplace-38». Однако ошибка, кажется, присутствует только для этой записи. Итак, почему другие принимаются, но это не так?

У меня кончились идеи. Следовательно, было бы здорово, если бы кто-то мог помочь мне в этом.

+0

проверить на наличие пробелов. –

+0

Примите это во внимание, но, скорее всего, это не проблема. Есть еще предложения? – Sparky

ответ

3

Вы уверены, что измерение обрабатывается? Помните, что, связывая факты с измерениями, он делает это по измерению SSAS, а не по базовой таблице SQL. Сначала попробуйте запустить процесс (Обновление) по размерности?

В исходном посте вы смешиваете верхний и нижний регистр, рынок и рынок. Так ли это в источнике? Может быть, это не относится к ним одинаково. Я видел SSAS есть проблемы с «Id» против «ID»

Возможно родственник ssas attribute key cannot be found even though it exists and is not due to duplicates

ред комментариев в ответ после принятия.

+0

Я добавлю здесь пункт, который я пропустил. Я попробовал обработать раздел куба с игнорированием ошибок ошибок (в попытке, чтобы даже в случае ссылочной целостности он по крайней мере сгруппировал его под неизвестным). Однако он не работает с той же ошибкой. Обработка измерений успешна. – Sparky

+0

@Sparky - В вашем исходном посте вы смешиваете верхний и нижний регистр, MARKETPLACE и Marketplace. Так ли это в источнике? Может быть, это не относится к ним одинаково. Я видел, что SSAS имеет проблемы с идентификатором «Id» или «ID»:/ – Meff

+0

Да, Melf, так оно и есть в источнике. Я попытаюсь принять это во внимание. – Sparky

0

У меня такое же сообщение об ошибке, но в моем случае пришлось обрабатывать его по-другому: подробности ниже для других, которые сталкиваются с той же проблемой.

В моем сценарии я связывал свою таблицу фактов с другой таблицей фактов через таблицу мостов. Эта таблица моста была сформирована через INNER JOIN, поэтому у нее были только записи, которые соответствовали друг другу; законно, тогда некоторые строки в FactTableA не были в BrgTable, присоединившись к FactTableB.

Чтобы FactTableA обрабатывать даже тогда, когда не было никаких действительных ссылок на BrgTable, я последовал за these instructions from TechNet:

ссылочной Проблемы целостности в таблице фактов

Таблица фактов продажи имеет записей product_id, который не есть в таблице размеров продукта. При обработке раздела сервер выдаст ошибку KeyNotFound . По умолчанию ошибки KeyNotFound: регистрируются и подсчитываются в соответствии с предельным значением ошибки, который равен нулю на по умолчанию. Следовательно, при первой ошибке обработка завершится неудачно.

Решение состоит в изменении ErrorConfiguration в группе мер или раздел. Ниже приведены два варианта: обработка ошибок KeyNotFound

Set KeyNotFound=IgnoreError. 

Set KeyErrorLimit to a sufficiently large number. 

по умолчанию является выделить запись факт к неизвестному члену. Другой альтернативой является установка KeyErrorAction = DiscardRecord, чтобы полностью исключить запись таблицы фактов .

Для меня, я должен был пойти на раздел, связанный с неисправной группой мер, откройте Свойства панели, установите ErrorConfiguration в Custom, а затем разверните Выборочный и установите KeyNotFound в IgnoreError.

Смежные вопросы