Как работать с хранилищами данных с помощью бизнес-ключа? - PullRequest
0 голосов
/ 05 октября 2018

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

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

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

Моя единственная мысль в качестве обходного пути - создать искусственный бизнес-ключ для отчета о зарплате, используя идентификатор компании, SSN и период отчета о зарплате.Не совсем правильно создавать бизнес-ключ в хранилище данных, но есть ли у нас другие варианты?Может ли это быть смоделировано по-другому с Data Vault?

Любые мысли и идеи высоко ценятся.

1 Ответ

0 голосов
/ 24 марта 2019

Здесь вы заметили ситуацию, когда Data Vault становится действительно трудной.

У вас есть ситуация, когда у каждого объекта данных нет бизнес-ключа.

ДанныеАрхитектуре хранилища нужны бизнес-ключи.

Обычно у вас есть 4 варианта.

  1. Наличие бизнес-объекта (в данном случае, отчетов о зарплате) без бизнес-ключа является анти-шаблон.Убедите разработчика системы оплаты труда предоставить бизнес-ключ или уникальный номер транзакции для каждого отчета о зарплате.

  2. Создайте составной ключ, как вы упомянули.Самая большая проблема этого подхода: можете ли вы быть уверены, что составной ключ всегда уникален?Допустим, вы используете идентификатор компании, SSN и точку.Что, если в системе оплаты труда была допущена ошибка, и в тот же период им пришлось внести дополнительный платеж?В этой ситуации у вас будет 2 строки для одного и того же составного ключа (идентификатор компании, SSN и точка).

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

  4. Не использовать Data Vault для этого объекта.Если объект не помещается в хранилище данных или существует другая структура, которая лучше соответствует данным, используйте это.

...