2014-10-23 9 views
1

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

Обычно, когда мы проектируем хранилище данных, у нас будут таблицы фактов и таблицы размеров.

Однако имеет смысл вставлять измерение в таблицу фактов. Особенно для простых измерений, у которых нет других атрибутов и редко меняет его ценность.

Имея габаритные размеры таблицы фактов, запрос будет выполняться очень быстро и не нужно поддерживать таблицу размеров отдельно, при выполнении ETL не нужно искать таблицу размеров.

Есть ли какое-либо соображение, чтобы размеры были отделены от фактов?

+0

на самом деле он собирается встроить все размеры в самом деле, не только вырожденных размер – rendybjunior

ответ

4
  1. Факты имеют множество строк. Если вы положили атрибут, скажем, длиной 20 в действительности, требуется больше хранилища, чем если бы вы поместили только один суррогатный ключ INT (4 байта). Больше памяти = большая таблица = снижение производительности.

  2. Вы почти всегда хотите хранить другие иерархии и атрибуты по данному атрибуту. Даже если вы этого не сделали, в будущем вы можете захотеть

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

Когда вы кладете вещи в измерениях, а не факты, это означает, что вы сделали какое-то анализ о том, как это вписывается в бизнес

+0

Красиво поставленный, +1. Тем не менее, иногда неплохо было бы сгенерировать ваше измерение и поместить атрибуты в таблицу фактов, чтобы сделать запрос быстрее. В качестве примера рассмотрим «номер квитанции» в таблице «факт продаж». Вместо того, чтобы хранить его в отдельном измерении «квитанция», вы также можете поместить его в таблицу фактов. – hashbrown

+0

Да, я согласен. В этом случае вы не поместили бы его в измерение –

+0

@ Nick.McDermaid 1. Я думаю, что производительность - это размер индекса таблицы, а не размер таблицы как таковой, cmiiw 2. Я вижу, что, если я просто добавлю еще одну колонку в будущем, чтобы представить hieararchy 3. Это может быть постепенно нарастать при выполнении ETL, однако это будет только ссылкой и не нужно связываться с фактом. что вы думаете? – rendybjunior

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

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