Дизайн хранилища данных больше чем с одной таблицей фактов

Я плохо знаком с организацией хранилищ данных. Во-первых, я хочу к точному, чем моя копия Инструментария Хранилища данных идет, это - путь к моему почтовому ящику (обычная почта :P). Но я уже изучаю весь этот материал с тем, что я нахожу в сети.

То, что я не нахожу в сети, однако, то, что сделать, когда у Вас, кажется, есть больше чем один факт в DW. В моем случае (страховка) у меня есть возмещения, которые происходят на не регулярной основе. У одного клиента не может быть ни одного в течение 3 месяцев и затем десять в тех же месяцах. На других руках у меня есть "абонентская плата" (не уверенный, каков корректный английский термин, но Вы понимаете), которые происходят каждый месяц или каждые три месяца. Это ясно походит на два отличных факта мне.

Те два отчасти слабо связываются некоторыми размерами, как клиент или "страховой продукт". Теперь являются эти два другим складом, о котором я должен представить два других отчета и затем соединить отчеты за пределами DW? Или есть ли способ разработать это для установки единственному спуску DW. Или я должен объединить эти два факта в одном? Я, вероятно, потерял бы гранулярность на возмещениях затем.

В некотором блоге, который я прочитал, было сказано, что DW всегда имеет одну таблицу фактов. Другие упоминают шаг разработки, что является таблицами фактов с S, но нет никакого четкого указания, того, если существует ссылка между ними, или они - просто отличные компоненты того же проекта DW.

Кто-либо знает некоторые ссылки на той точной части дизайна DW?

17
задан cmaher 23 August 2018 в 21:19
поделиться

2 ответа

Возвращаясь к вашим вопросам.

Хранилище данных может иметь более одной таблицы фактов. Однако вы все же хотите свести к минимуму объединения между таблицами фактов. Можно дублировать информацию о фактах в разных таблицах фактов.

Из упомянутых вами предметов:

Возврат - это факт. Отметка времени - это размер факта возврата.

Абонентская плата - это факт. Отметка времени - это измерение факта абонентской платы.

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

Если бы вы знали, что может быть не более трех возвратов (в качестве примера), то вы бы удалили таблицу фактов возврата средств клиентам и поместили бы 3 столбца возврата в таблицу клиентов.

Вы также упомянули о страховании. У клиента может быть более одной политики. Итак, у нас есть третья таблица фактов.

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

11
ответ дан 30 November 2019 в 10:27
поделиться

Вы можете иметь сколько угодно таблиц фактов. В вашем примере у вас может быть что-то вроде:

fact_ins_transaction

dimProduct перечисляет несколько продуктов, в том числе подписка. dimTransactionType будет перечислять возможные транзакции (покупка, возврат, периодическая абонентская плата ...)

Теперь предположим, что вас интересует упрощенная отчетность по подписке, вы можете добавить factSubscription следующим образом:

fact_ins_subscription

20
ответ дан 30 November 2019 в 10:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: