2016-06-23 2 views
0

Я пытаюсь добавить новый столбец в мой куб SSAS. Столбец - это поле даты и ссылки на мою таблицу DimDate (измерение Date). Эта дата представляет дату завершения проекта.SSAS: как обрабатывать измерение даты, когда дата равна нулю

Однако .... не все проекты имеют дату завершения проекта из-за старых проектов, которым никогда не присвоено это значение. И это ожидается. Мы не хотим вводить фиктивные даты в поле, чтобы заставить SSAS работать.

При обработке куба, он падает с:

Errors in the OLAP storage engine: The attribute key cannot be found when 
processing: Table: 'dbo_FactMyTable', Column: 'MyDate_id', Value: '0'. 
The attribute is 'Date Id'. 

Я не могу отключить «пропущенные значения» для всего проекта, так как в большинстве случаев, это действительно ошибка. Как я могу отключить отсутствующие значения для этого размера?

Или есть лучший способ справиться с отсутствующими датами/значениями?

ответ

0

Небольшая коррекция - на основе вашего вопроса, вам нужно изменить Обработка обработки ошибок для специальных Группа мер измерения, а не Размер. Вы можете сделать это для всех измерений, связанных с определенной группой мер, но не с конкретным измерением.
Вы можете обработать индивидуальную группу мер с помощью _Table: 'dbo_FactMyTable'_ сначала с необходимыми параметрами отсутствующих значений, а затем - обработать остальную часть вашего куба с настройками по умолчанию.
Основная проблема здесь - как обрабатывать остальная часть куба. У вас может быть сложная система, которая динамически обрабатывает сценарии XMLA на основе знаний об обновлении данных (я делаю это с помощью SSIS); в этом случае вы не будете задавать этот вопрос. Предположим, что ваша среда проще - вы обновляете куб и хотите полностью обрабатывать его в целом. В таком случае я бы sudgest следующий рабочий процесс:

  1. процесс по умолчанию все размеры (будут делать предварительную обработку или в изменении структуры)
  2. процесса обновления все размеры
  3. Process Куб с отработку - недействительности его
  4. Процесс вашей специальной группы мер
  5. Process Куб с процессом по умолчанию

Это будет первым вверх date Dimensions, затем - очистить флаг состояния обработки от всех групп мер в кубе. После этого вы обрабатываете свою группу мер специальными флагами; этот статус обработки для этого MG. А затем во время процесса по умолчанию на кубе - будут обрабатываться только необработанные MG, что исключает ваш специальный MG из области обработки.

0

Ответ немного сложный, но эта статья проделала отличную работу по его объяснению, включая снимки экрана для SSAS-оспариваемых, подобных мне.

http://msbusinessintelligence.blogspot.com/2015/06/handling-null-dates-in-sql-server.html?m=1

+0

Да, лучше всего сделать, это включить Unknow прошедшую дату и неизвестную дату в будущем в вашем datedimmension. Карта вашего факта с ключами для них. В вашем случае, потому что завершение проекта в будущем я буду использовать это. Много раз 1/1/1900 и 12/31/2999 используются, если вы используете дату в качестве первичного ключа. Хотя целое число или VARCHAR() в качестве первичного ключа могут также вводить некоторую логику. – Matt

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