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

Примеры контрактов

На этой странице представлены примеры реальных контрактов данных из различных доменов.

Структура контракта

Каждый контракт состоит из нескольких файлов:

domains/{namespace}/{entity}/
├── contract.yaml           # Метаданные, owner, ссылки
├── schema.avsc            # Apache Avro схема
├── quality_rules.yml      # Правила качества данных
├── sla.yml               # SLA и retention политики
├── physical_layout.yml   # Конфигурация Iceberg/Parquet
└── runbook.md            # Операционный runbook

Доступные контракты

  • sales/orders


    Заказы клиентов из 1C

    Version: 2.1.0 | Owner: sales-integration

    Посмотреть →

  • warehouse/inventory


    Складские остатки товаров

    Version: 1.2.0 | Owner: warehouse-team

    Посмотреть →

Как читать контракт?

1. contract.yaml - метаданные

Начните с основного файла контракта, который содержит: - Версию контракта (SemVer) - Информацию о владельце (owner) - Описание данных (description) - Ссылки на другие файлы

2. schema.avsc - схема данных

Avro схема определяет: - Какие поля есть в данных - Типы полей (string, int, timestamp, etc.) - Обязательность полей - Значения по умолчанию

3. quality_rules.yml - правила качества

Правила валидации: - NOT NULL проверки - Диапазоны значений (range) - Регулярные выражения (regex) - Бизнес-правила (custom)

4. sla.yml - SLA и retention

Соглашения о: - Доступности (availability) - Свежести данных (freshness) - Времени реакции (response time) - Хранении данных (retention)

5. physical_layout.yml - физическая структура

Конфигурация для Data Engineers: - Партиционирование (day, bucket) - Сортировка (sort order) - Индексы (bloom filters) - Компакция

6. runbook.md - операционная документация

Что делать при инцидентах: - Контакты - Топики Kafka - Сценарии проблем - Maintenance процедуры

Шаблоны

Хотите создать свой контракт? Используйте готовые шаблоны:

Смотреть шаблоны →

Versioning

Все контракты следуют Semantic Versioning:

Изменение Version bump Пример
Удаление поля MAJOR 1.0.0 → 2.0.0
Изменение типа MAJOR 1.0.0 → 2.0.0
Добавление required поля MAJOR 1.0.0 → 2.0.0
Добавление nullable поля MINOR 1.0.0 → 1.1.0
Изменение description PATCH 1.0.0 → 1.0.1

Подробнее: Contract Versioning Workflow

Поиск контрактов

По домену

  • sales - продажи, заказы, клиенты
  • warehouse - склад, остатки, движение товаров
  • marketing - лиды, кампании, события
  • finance - платежи, счета, транзакции

По критичности

Смотрите тег critical в метаданных контракта.

По владельцу

Каждый контракт имеет владельца (owner) - команду, ответственную за данные.