Примеры контрактов¶
На этой странице представлены примеры реальных контрактов данных из различных доменов.
Структура контракта¶
Каждый контракт состоит из нескольких файлов:
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) - команду, ответственную за данные.