Как обрабатывать размеры с похожими атрибутами?
В моем киоске данных есть следующие объекты:
- Расположение: содержит информацию о стране, городе и т. Д.
- Пользователи: содержит информацию о пользователе, включая его адрес, включая страну и город.
Оба эти измерения содержат атрибуты, касающиеся страны и города. Хранение атрибутов только в измерении местоположения имело бы больше смысла, поэтому мы не дублируем данные и можем получить информацию о местоположении пользователя, соединив суррогатные ключи таблиц вместе через таблицу фактов. Тем не менее, выполнение этого способа увеличит накладные расходы, потому что нам потребуется выполнить несколько соединений.
У меня нет опыта работы с многомерным моделированием и хранилищем данных, поэтому я не знаю, какой из них лучше использовать:
- Пусть оба измерения содержат одинаковые атрибуты
- Поместите атрибуты в таблицу, к которой он принадлежит (в этом случае измерение Location)
1 ответ
Вариант 1 ближе к пути Кимбалла. Пространственное моделирование не ставит приоритетов во избежание дублирования данных. В этом случае они утверждают, что данные "принадлежат" нескольким таблицам. У пользователей есть информация об их адресе, так что это информация о пользователе - она принадлежит пользователю.
Важно то, что данные соответствуют именам полей и характеру контента - вы, как лицо, ответственное за ETL/ DW, должны выполнить работу, чтобы убедиться, что это так.
Многие люди выбирают вариант 2. Для этого способа я не знаю природу вашего факта (так что я могу ошибаться), но звучит так, что если вы хотите узнать местоположение пользователя, у вас будет ключ от измерение, а не факт - который был бы структурой "снежинки". Это не всегда неправильно, но не позволяет вам получить максимальную отдачу от размерной модели.