Я собираюсь спроектировать DataWarehouse для базы данных Northwind, но в таблицах клиентов, продуктов и сотрудников есть два общих поля, называемых «страна» и «город». Я хочу выяснить, правильно ли определять связь между измерением Geo и 3 другими измерениями в соответствии с формой диаграммы? Если у вас есть какие-либо комментарии, пожалуйста, поделитесь
Разработка отношений для хранилища данных
Ответы (1)
Это зависит от того, какую философию вы хотите реализовать. Если вы следуете Кимбаллу, вам нужна звездная схема, в которой таблицы фактов связаны с измерениями, а те не связаны ни с чем другим. В этом случае вам лучше сохранить геополя в каждом измерении.
Любая избыточность не имеет смысла, так как обычно все объединенные измерения намного меньше по размеру, чем таблица (таблицы) фактов, возможно, на несколько процентных пунктов от всего размера.
С другой стороны, объединение 3 таблиц в цепочку намного дороже, чем одно соединение.
Экономия процессорного времени и вычислений времени запроса за счет дополнительных байтов (или килобайтов, или мегабайтов) обычно является хорошим компромиссом.
person
nsousa
schedule
26.10.2019
Итак, согласно вашему объяснению, если я правильно понял, я должен внести Geokey в каждое измерение сотрудников, клиентов, продуктов с помощью компонента lookUp вместо дизайна, который я внес GeoID в каждое измерение. Я прав?
- person Arman Nooromid; 27.10.2019
Нет, на самом деле вы должны указать страну, город и любое другое географическое поле непосредственно в каждом измерении, чтобы, если вам нужны, например, продажи по стране клиента, вам нужно было только простое соединение между таблицей фактов и измерением. Рекомендуемое чтение: Инструментарий хранилища данных, Ральф Кимбалл
- person nsousa; 28.10.2019