АРХИТЕКТУРА EDWHP0L3

Архитектура Enterprise DWH для финансовых данных

Назначение архитектурных слоёв, финансовое ядро, правила интеграции и критерии принятия решений.

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

Задача EDWH#

Корпоративное хранилище должно объединять данные нескольких источников, сохранять смысл и происхождение показателей, поддерживать исторические состояния и делать результат проверяемым.

Для финансовой области этого недостаточно сформулировать как «загрузили таблицы и написали отчёт». Значение имеют достоверность сумм, бухгалтерские правила, временная семантика, единые справочники и возможность объяснить происхождение каждого результата.

Базовая многослойная модель#

Слой Назначение Контрольные вопросы
Source Операционные и учётные системы Какие события являются первичными?
Raw / Landing Сохранение полученных данных Что реально прислал источник?
Staging Приведение форматов и предварительные проверки Что изменилось при нормализации?
Core Интегрированные сущности и связи Где единая бизнес-семантика?
Serving / Mart Рассчитанные наборы для конкретных задач Как определено зерно и показатель?
Control Технические и финансовые проверки Чем доказана полнота и корректность?

Названия и число слоёв не стандартизированы. В конкретной системе они зависят от архитектуры и эксплуатационных требований. Слой контроля логически проходит через весь конвейер, а не обязан быть физически одной отдельной схемой.

Финансовое ядро#

Предлагаемый минимальный набор сущностей: source_event, account, document, journal_entry, journal_line, currency, financial_period, load_batch и отдельные представления результатов сверок.

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

Выбор архитектуры#

В EDWH могут использоваться разные способы моделирования:

  • Нормализованное интеграционное ядро - полезно, когда важна однозначная модель сущностей, а число источников велико.
  • Data Vault - подход к интеграции и прослеживаемой истории бизнес-ключей и связей; требует правильного выбора зерна и правил сателлитов.
  • Dimensional modeling - факты и измерения, удобные для определённых классов расчётов и аналитических выборок.

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

Какие решения нужно фиксировать до SQL#

  1. Гранулярность: одна строка факта - это событие, документ, строка проводки или снимок остатка?
  2. Время: различаются ли учётная дата, дата появления в источнике и момент получения исправления?
  3. Идентичность: возможны ли повторные идентификаторы в разных исходных системах?
  4. Финансовые ограничения: может ли документ быть несбалансированным на промежуточном этапе? Каковы правила валют?
  5. Пересчёты: какой объём данных следует обновлять при позднем изменении?
  6. Прослеживаемость: можно ли для строки результата восстановить исходные события и применённые преобразования?

Контрольная инженерная задача#

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

Такую задачу невозможно корректно решить одним JOIN. Требуется сначала установить модель времени, правила корректировок, бизнес-ключи и критерии сверки.

Источники и документация

  1. Kimball Group - Four-Step Dimensional Design Process ↗

Источники нужны для самостоятельной проверки. Примеры и интерпретации на сайте могут быть учебными упрощениями.