Дизайн DWH. Денормализация - лучший подход или ее следует избегать? - PullRequest
0 голосов
/ 18 июня 2020

Я перепроектирую витрину данных в SAS, которая будет использоваться для механизма профилирования (определено c), а затем передана денормализовано в SAS Visual Analytics.
Позвольте мне объяснить суть предметной области: это колл-центр, у меня есть несколько билетов (фактов), которые поступают каждый день со связанными идентификатором вызывающего абонента и идентификатором клиента (это не очень хорошо объясняется, но эти две сущности могут быть или не быть одним и тем же лицом) Внутри этих двух таблиц я иметь поле ssn, которое некоторые другие таблицы из разных внешних систем имеют в качестве первичного ключа (в этом домене это значение является уникальным и идентифицирует человека).

Напомним:
ticket_table n-> 1 caller_table 1 * -> 1 ssn_table (s)
ticket_table n-> 1 client_table 1 * -> 1 ssn_table (s)

Итак, я подумал объединить все эти таблицы с различной информацией о человеке в одну ssn_table со всей необходимой информацией (избегая дублирования и отметки несовпадающих переменных из разных систем), а затем либо:

  • li Создание этой таблицы с двумя «внутренними измерениями» - вызывающим и клиентским
  • извлечением ssn от вызывающего и клиентского прямо в таблицу фактов, чтобы я мог сохранить 1 уровень нормализации, создав эти две переменные «ssn_client» и « ssn_caller "в качестве внешних ключей к ssn_table

Все это измерение будет хранить историю, и я думаю смоделировать их как SCD Type 2 (прямо сейчас« модель »состоит из всех таблиц, загруженных как -в SAS обновляет старые существующие данные, нет истории, даже для таблицы фактов (при закрытии тикет обновляется с close_date)

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

Некоторые числа:
Таблица фактов: 100 млн строк
вызывающий и клиент: 24 млн и 28 млн строк
ssn: unsure, скажем, 80M, многие ssn не отображаются в вызывающем и / или клиенте, но их необходимо включить в модель.

Обновления: около 100 тыс. Билетов ежедневно, некоторые из которых могут поступать от новых абонентов о новых клиентах или изменении информации о существующих.
не знаю, сколько новых / обновленных ssn из разных систем на данный момент

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...