Как обрабатывать размеры с похожими атрибутами?

В моем киоске данных есть следующие объекты:

  • Расположение: содержит информацию о стране, городе и т. Д.
  • Пользователи: содержит информацию о пользователе, включая его адрес, включая страну и город.

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

У меня нет опыта работы с многомерным моделированием и хранилищем данных, поэтому я не знаю, какой из них лучше использовать:

  1. Пусть оба измерения содержат одинаковые атрибуты
  2. Поместите атрибуты в таблицу, к которой он принадлежит (в этом случае измерение Location)

1 ответ

Вариант 1 ближе к пути Кимбалла. Пространственное моделирование не ставит приоритетов во избежание дублирования данных. В этом случае они утверждают, что данные "принадлежат" нескольким таблицам. У пользователей есть информация об их адресе, так что это информация о пользователе - она ​​принадлежит пользователю.

Важно то, что данные соответствуют именам полей и характеру контента - вы, как лицо, ответственное за ETL/ DW, должны выполнить работу, чтобы убедиться, что это так.

Многие люди выбирают вариант 2. Для этого способа я не знаю природу вашего факта (так что я могу ошибаться), но звучит так, что если вы хотите узнать местоположение пользователя, у вас будет ключ от измерение, а не факт - который был бы структурой "снежинки". Это не всегда неправильно, но не позволяет вам получить максимальную отдачу от размерной модели.

Другие вопросы по тегам