2016-06-13 8 views
1

В моей схеме звезда, у меня есть измерение в проект который имеет столбцы, такие как датой_начала, finish_date, service_date, onhold_date, resume_date т.д.Snowflaking Дата измерения

Должен ли я вводить внешние ключи для всех дат таблицу фактов и подключить их к размеру даты, или я должен сжечь project_dimension с date_dimension? Не все даты доступны для данного проекта, поэтому сохранение всех этих столбцов в fact_table может привести к наличию нулевых ключей в fact_table.

Каков наилучший способ обработки дат в этом сценарии?

+0

Есть ли шанс, что любые другие таблицы факт нужно будет использовать эти даты? Я спрашиваю, думаете ли вы, что они должны быть согласованы между другими фактами, или это больше одно? –

+0

На данный момент никаких других фактов нет. У нас есть только один project_dimension с датами. поэтому целесообразно создать измерение даты и поместить все эти даты на самом деле в таблицу и ссылку с помощью клавиш даты? как я могу обрабатывать недоступные даты в этом случае (должен ли я создать недоступную дату «19000101»? Каковы недостатки снежинок? Спасибо – SRK

ответ

1

В хранилище данных я всегда предпочитаю схему звездной звезды, как можно меньше снежинок, хотя это, очевидно, немного личное предпочтение и может зависеть от того, какую среду вы используете. Для Oracle (среда, в которой я больше всего привык) она поддерживает физическую обработку снега, но наилучшая практика означает не снеживать слой бизнес-модели (логического).

Лично я хотел бы направить FK на этот факт по нескольким причинам. Один, который поддерживает звезду, которая обычно лучше работает, поскольку снежинки вводят больше объединений, а звезды быстрее обрабатывают агрегацию. Во-вторых, если у вас есть пользователи, объединяя эти данные с данными из других фактов, то наличие согласованного измерения даты просто имеет смысл, может помочь повысить производительность и является более надежным. Наконец, звезды, вероятно, наиболее распространены, поэтому, чтобы другие люди работали над этой областью в будущем, должно быть проще/данные могут лучше работать с другими приложениями в будущем.

Для нужных FKs я бы по умолчанию использовал любую дату по умолчанию, установленную вашей системой, для нас наша неуказанная запись - 01.01.1901. Я бы не оставил их пустыми, если бы не было желания не видеть 1901 бизнес-пользователей, и даже тогда я, вероятно, исключил бы их с помощью case-case, но оставил бы поле заполненное на столе.

Вот хорошая статья, описывающая преимущества/недостатки каждого типа. Как я уже сказал, ни один из них не является полностью правильным или неправильным.

http://www.dataonfocus.com/star-schema-and-snowflake-schema/

+0

Спасибо ... Это помогает. – SRK

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

  • Нет связанных вопросов^_^