Схема звездочки из нескольких исходных таблиц

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

введите описание изображения здесь

Я хотел бы превратить это в звездную схему, что-то вроде ...

введите описание изображения здесь

Есть ли у меня единственный вариант денормализовать исходные таблицы в одну широкую таблицу (объединение сделок для позиции по номеру и дате счета и присоединение к таблице пользователей по номеру счета), создать ключи для каждого измерения, а затем повторно нормализовать его в звездную схему? Создается ли когда-либо звездная схема из нескольких исходных таблиц?


person Jonathan Duran    schedule 23.04.2021    source источник


Ответы (2)


Звездообразные схемы почти всегда создаются из нескольких исходных таблиц.

Нормальный процесс:

  1. Заполните таблицы измерений
  2. Создайте временную / виртуальную запись фактов, используя исходные данные
  3. Используя эту запись фактов, найдите соответствующие ключи измерений
  4. Запишите фактическую запись факта в вашу целевую таблицу фактов
person NickW    schedule 24.04.2021
comment
будет ли эта виртуальная запись факта (шаг 2) быть создана путем объединения исходных исходных таблиц, чтобы получить полную транзакцию в одной строке? Я думаю, что это единственный способ, которым измерения узнают друг о друге (то есть если они находятся в одной строке / записи). - person Jonathan Duran; 24.04.2021
comment
Да - он будет содержать всю информацию о фактах, необходимую для поиска соответствующих затемненных областей, а затем для заполнения таблицы фактов. - person NickW; 24.04.2021

Хранилище данных - это скорость запросов. Хранилище данных не должно заботиться о целостности данных. НЕ ДОЛЖНО ОЧИСТИТЬ ИЛИ ИСПРАВИТЬ НЕПРАВИЛЬНЫЕ ДАННЫЕ. Достаточно собрать все данные в единую запись для представления модели для анализа. Это делается денормализацией данных.

В звездообразной схеме измерения не знают друг о друге и не связаны с другими измерениями. В снежинке размеры связаны с другими размерами. В этом главное отличие звезды от снежинки.

Все параметры метаданных для событий объединены в измерения и используются для нарезки / фильтрации. Все измеряемые / расчетные данные для события находятся в факте события вместе со ссылкой на измерение (а), содержащее соответствующие метаданные. Метаданные / измерение повторно используются в нескольких записях фактов.

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

Вы также должны убедиться, что ключи ваших измерений ясны. У вас не должно быть нескольких путей к измерению (accountnumber: trade - ›position -› user & trade - ›user), так как это приведет к противоречивым результатам при запросе в зависимости от того, какие отношения вы пересекаете.

person Wes H    schedule 27.04.2021