Работа с адресным измерением и его роль в нескольких фактах

Вопрос по пространственному моделированию и ролевым играм. У нас есть адресное измерение, которое является «ролевой игрой». Мы получаем Адреса из разных источников, в том числе из CRM-систем. Адреса также могут быть разных типов, например, адрес компании, индивидуальный адрес и т. д. Таким образом, из измерения «Адрес для ролевой игры» один адрес может быть помечен как «Адрес компании» и «Адрес для выставления счетов» в различных фактах.

Существуют разные таблицы фактов, и у них разные ключи, которые будут содержать адресные данные. Fact_Sales будет иметь такие ключи, как Customer_Address_Key, Company_Head_Office_Address_Key. Так что я считаю, что мы как бы разыгрываем адреса в этих фактах.

Вопрос:

У нашего ведущего архитектора данных есть опасения по этому поводу. • Мы собираем много адресов из нескольких систем. Как бы мы определили, откуда пришли эти адреса и что это за адреса, не обращаясь к таблицам фактов.

Я бы по-прежнему предлагал ознакомиться с фактами, но я хотел бы проконсультироваться с более широким сообществом, прежде чем твердо стоять на ногах.

Есть ли лучший способ сделать это, возможно, отдельная таблица, определяющая комбинацию Address_Key, Address_Type_Key и Source_Key.

Пожалуйста, дайте мне знать, если вам нужны какие-либо дополнительные разъяснения или фотографии и т. д.

Ура Нитин


person NITHIN B    schedule 27.04.2017    source источник


Ответы (2)


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

Как в сторону:

Хотя у многих людей есть отдельная таблица адресов, подход Kimball Group не будет состоять в том, чтобы иметь измерение «адрес» или местоположение в качестве многоцелевого измерения, которое стоит отдельно — оно обеспечивает часть того, что описывает что-то еще (например, компания, клиент или даже «место доставки»). Вместо этого у вас будет измерение (например, «Клиент»), и в этом измерении у вас будет несколько полей «Адрес» с соответствующими именами (CustomerAddress1, CustomerAddress2, CustomerCity). Вы можете выбрать централизованное администрирование адреса для удобства за кулисами, с другими измерениями, формируемыми посредством представлений или дополнительных ETL, но в представлении схемы звезда таблица адресов не будет видна отдельно. Адреса по-прежнему согласованы в том смысле, что они называются одним и тем же и означают одно и то же.

Однако многие люди используют отдельную таблицу адресов, как это сделали вы.

person Rich    schedule 27.04.2017

Очень разумно включить источник в качестве атрибута измерения. Более важный вопрос заключается в том, как выбрать «Текущий» адрес для клиента, если у вас есть несколько источников. Вот где все будет сложно.

Вам нужно, чтобы Текущий адрес клиента означал одно и то же во всем вашем бизнесе, независимо от источника, из которого он был получен. Я бы назвал это конформным измерением. Вам необходимо «привести» все ваши источники адресов к одной и той же структуре, чтобы вы могли использовать их как единое измерение.

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

Сложность заключается в том, чтобы решить, какой источник является наиболее надежным, когда адрес находится в нескольких источниках. Нужно учитывать источник и дату последнего обновления. Другими словами, является ли первичный источник по-прежнему предпочтительным, когда менее надежный источник имеет более свежее обновление.

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

person Wes H    schedule 01.05.2017