ВОПРОСЫ И ЗАДАЧИP0L3

Инженерные вопросы и задачи: EDWH и финансовые данные

Сценарии на архитектуру, финансовую семантику, SQL, историзацию и проверку корректности.

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

Как пользоваться этим разделом#

Каждый сценарий разбирается по схеме контракт данных → гипотеза решения → граничные случаи → проверки → компромиссы. Решение должно сохранять финансовую семантику и выдерживать проверку на пограничных данных.

Архитектура и моделирование#

1. Чем EDWH отличается от отдельной аналитической базы?#

Проверяется понимание межсистемной интеграции, единой модели сущностей, историчности, управления качеством и прослеживаемости. Недостаточно ответить «EDWH больше по размеру».

2. Почему нельзя объединить в один факт операцию, проводку и ежедневный остаток?#

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

3. Как выбрать между нормализованным Core, Data Vault и размерной моделью?#

Рассмотреть число и качество источников, требования к истории, изменения бизнес-ключей, запросы, прослеживаемость и стоимость сопровождения. Универсального выбора нет.

Время и корректировки#

4. В январе внесли документ, в феврале его исправили с январской датой. Как строить отчёт?#

Уточнить, нужен ли срез «как было известно на конец января» или пересчитанное состояние января. Разделить деловое и системное время, сохранить исправление и пересчитать зависимые показатели.

5. Почему watermark по максимальной дате в приёмнике может потерять данные?#

Поздние события, нарушенный порядок доставки, исправления старых записей. Решения: CDC, пересекающиеся окна, контроли полноты, контракт последовательностей, целевой backfill.

6. Что означает идемпотентная загрузка?#

Одинаковый вход при повторной обработке не меняет логический результат. Но другой payload с прежним ID нельзя молча отбросить без анализа конфликта.

Финансовая предметная область#

7. Что доказывает равенство дебета и кредита?#

Что выполнен один из инвариантов на корректном уровне документа/учётного контура/валюты. Оно не доказывает полноту источника, верность счетов или отсутствие компенсирующих ошибок.

8. Чем обороты отличаются от остатков как меры EDWH?#

Обороты - движения за период. Остатки - состояния на дату; сумма ежедневных остатков не равна остатку на последний день.

9. Почему нельзя складывать суммы без валютного измерения?#

Разные валюты имеют разные размерности; нужна явная процедура конвертации, дата курса, метод округления и учётные правила.

SQL и MPP#

10. После JOIN суммы стали вдвое больше. Что проверять?#

Сравнить зерно фактов и кардинальность связей, посмотреть дубли бизнес-ключей и GROUP BY. Исправлять модель соединения, а не маскировать результат DISTINCT без анализа.

11. Greenplum-запрос медленный, хотя PostgreSQL-аналог быстрый. Почему?#

Нужно анализировать распределение, skew, межсегментные движения, планы, статистику и партиционирование. Нельзя выводить производительность MPP только из локального плана PostgreSQL.

12. Как доказать, что сверка действительно обнаружит потери?#

Проверить набор контрольных случаев: пропущенная запись, лишняя запись, конфликт payload, две компенсирующие ошибки, неверная валюта и историческое исправление. Затем автоматизировать проверки на синтетических входных данных.

Практическое задание#

Спроектировать небольшой конвейер source_event → journal_line → daily_balance для одного валютного контура. Описать:

  1. Зерно каждой таблицы, уникальные ключи и соглашение о знаках.
  2. Правило идемпотентного приёма событий.
  3. Учётную дату и время известности.
  4. Тестовые сценарии пропуска, конфликта и позднего сторно.
  5. Набор финансовых и технических проверок.

Исходная реализация похожей учебной задачи находится в Financial EDWH Lab.

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

  1. Kimball Group - SCD Type 2 ↗
  2. SAP S/4HANA - Journal Entry ↗

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