Одна или несколько таблиц фактов? - PullRequest
5 голосов
/ 19 марта 2012

Я пытаюсь построить витрину данных.

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

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

РЕДАКТИРОВАТЬ ::: будет огромное решение на основе olap-кубов в действительно сложной корпоративной среде.Таким образом, вначале требуется простота расширения и обслуживания, а затем производительность

Ответы [ 2 ]

7 голосов
/ 22 марта 2012

примечания к скале: я вижу проблемы масштабируемости в изобилии с понятием одной таблицы фактов / меры.

если ваша цель - "расширяемость и обслуживание", то вы можете рассмотреть возможность следования за отрасльюобщепринятая стандартная методология ... такая как Kimball и группируйте ваши факты сначала по бизнес-процессам, а затем по гранулярности с согласованными измерениями.Я был бы счастлив поспорить, что это обеспечит максимальную гибкость и масштабируемость, а также обеспечит расширяемость и поддержку с помощью стандартизации.

Кроме того, ваши администраторы SAN будут ненавидеть вас, если вы создадите отдельную таблицу фактов для каждогомера, потому что вы эффективно увеличиваете требования к пространству на количество мер ... по крайней мере на начальном этапе, в то время как все ваши меры в настоящее время помещаются в одну таблицу фактов.

Производительность запросов к DW также будет проблемой..reports и / или специальные запросы должны будут сканировать (или искать ... , если ваши администраторы san все еще разговаривают с вами и достаточно щедры, чтобы предоставить вам необходимое пространство для правильной индексации таблиц фактов и мусора)) каждый раз, когда вам нужно объединить более 1 меры.

Мы еще даже не обсуждали кубы olap, но я уже боюсь проблем с обработкой, которые у вас возникнут.Полное сканирование таблиц в изобилии ... или сканирование разделов ... если вы реализуете разделение в своих таблицах фактов ... что вы должны теперь сделать с SQL 2012 на горизонте ... Я смотрю на вас ColumnStore Index !!

2 голосов
/ 19 марта 2012

Если детализация всех мер одинакова, сохраните их в одной таблице. Вы только начинаете использовать несколько таблиц фактов, когда у вас есть факты с разным уровнем детализации. Если вы сказали, что все ваши факты связаны со всеми вашими измерениями, то на данном этапе вам кажется, что вам нужна только одна таблица фактов.

...