Создание хранилища данных - PullRequest
2 голосов
/ 23 ноября 2011

Я создаю хранилище данных, используя звездообразную схему.Я успешно построил все таблицы измерений, но я как бы застрял в таблице фактов.Мне нужно сделать таблицу продаж как таблицу фактов.Он имеет SalesKey, OrderKey, ProductKey и т. Д. Каждый заказ является продажей, поэтому каждый заказ будет иметь уникальный SalesKey, однако каждая продажа будет иметь более одного продукта.

Что было бы лучше всего построить эту таблицу?

Должен ли я создать что-то подобное

SalesKey OrderKey ProductKey
-------- -------- ----------
s1         o1        p1
s1         o1        p2
s2         o2        p1

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Я бы добавил, что элементы / строки заказа могут быть хитрыми. Есть несколько способов справиться с этим.

Добавьте столбец «позиция строки заказа» или «идентификатор контроля транзакции» в таблицу фактов.

Это позволит вам иметь SalesKey, OrderKey, ProductKey на вашем факте с вырожденным ключом измерения "OrderLineItem", который часто является контрольным номером транзакции или номером строки заказа из исходной системы.

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

Вот хорошая статья Кимбалла о вырожденных размерах: http://www.kimballgroup.com/html/designtipsPDF/DesignTips2003/KimballDT46AnotherLook.pdf

2 голосов
/ 23 ноября 2011

В общем, когда вы разрабатываете звездную схему, предпочтительно, чтобы каждое измерение было однозначным для каждой записи факта (то есть имеет отношение 1: M между фактом и измерением).Измерение ORDER-LINE, так что 1 заказ (= 1 продажа) может содержать много строк заказа.Каждая строка заказа содержит 1 продукт.

Таким образом, в основном вы будете использовать схему снежинки, в которой факториал связан с измерением ORDER-LINE в отношении 1: M.Затем измерение ORDER-LINE связывается с измерением PRODUCT в отношении M: 1.

. При этом исходная проблема, связанная с отношением M: M между Salesfact и измерением PRODUCT, была решена с помощьюРазмер линии в виде таблицы мостов.

...