Перейти к содержанию

Происхождение данных

Отслеживание происхождения данных (Data Lineage) — обязательное требование для всех контрактов. Lineage обеспечивает прозрачность: «откуда пришли данные?» и «куда они идут?».


Уровни lineage

Уровень Описание Обязательные элементы
Системный Высокоуровневый поток между системами Источник, назначение, метод интеграции
Столбцовый Маппинг на уровне полей Исходное поле, трансформация, целевое поле

Поля lineage в контракте

lineage:
  upstream:
    - system: "1C Enterprise"
      database: "postgres://1c-db.local:5432/orders_db"
      extraction_method: "cdc"
      tables:
        - name: "orders"
          columns:
            - source: "order_id"
              target: "order_id"
              transformation: "none"
            - source: "created_date"
              target: "created_at"
              transformation: "timestamp_conversion"

  downstream:
    - system: "Clickhouse DWH"
      database: "clickhouse://dwh.local:8123/production"
      tables:
        - "sales.orders_fact"
      update_frequency: "hourly"

    - system: "ML Feature Store"
      path: "feast://feature-store/sales_features"
      update_frequency: "daily"

Валидация lineage

Ежемесячный процесс верификации актуальности lineage:

1. Синтетический тест

Внедрить синтетические записи с уникальными маркерами в источник данных.

2. Проверка распространения

Убедиться, что маркеры появились во всех задокументированных downstream-системах.

3. Проверка сроков

Подтвердить, что данные прибывают в рамках SLA freshness.

4. Отчёт о расхождениях

Задокументировать любые незадокументированные потоки данных.


Анализ влияния

Перед изменением схемы необходимо выявить:

  • Все затронутые downstream-системы
  • Все затронутые поля назначения
  • Команды потребителей для уведомления
  • Оценку объёма работ по миграции
# Запуск анализа влияния
python contracts/ci/analyze_impact.py contracts/domains/sales/orders/

# Пример вывода:
# Анализ влияния для sales/orders
# ================================
# Модифицированные поля: [total_amount]
# Затронутые потребители:
#   - Clickhouse DWH (высокая критичность)
#     Использует: total_amount → sales.orders_fact
#   - Revenue Forecast ML (средняя критичность)
#     Использует: total_amount в расчёте фич

Дополнительные материалы