Архитектура потока данных
1) Назначение и принципы
Цели: доставлять корректные, своевременные и комплаентные данные для аналитики, отчетности, антифрода, персонализации и ML.
Принципы:- Data as a Product: четкие владельцы, контракты, SLO и версионирование.
- Schema-first: схемы обязательны; эволюция по правилам.
- Privacy-by-Design: минимизация PII, псевдонимизация, управление доступом.
- Observability-by-Default: трассировки, метрики, lineage, профили качества.
- Cost-aware: tiered-storage, семплирование шумных событий, компрессия.
2) Ландшафт источников и событий
Транзакционные: депозиты/выводы, ставки/выплаты, бонусы, chargeback.
Пользовательские: сессии, клики, конверсии, RG-лимиты, KYC статусы.
Операционные: логи приложений, метрики производительности, алерты.
Провайдеры: PSP/KYC/санкции/игровые студии (агрегаторы).
Референсные: каталоги игр, справочники стран/валют, тарифы/налоги.
json
{
"event_time":"2025-10-31T19:20:11Z",
"event_type":"payment. deposit",
"schema_version":"1. 3. 0",
"user":{"id":"U-123","country":"EE","age_band":"18-24"},
"payment":{"amount":200. 00,"currency":"EUR","method":"card","psp_ref":"PSP-222"},
"ctx":{"ip":"198. 51. 100. 10","session_id":"s-2233","trace_id":"f4c2..."}
}
3) Эталонная архитектура (high-level)
1. Ingest слой
Шлюзы (HTTP/gRPC), коннекторы CDC (из OLTP), очереди/шины (Kafka/Redpanda), коллекторы телеметрии.
Валидация, нормализация, PII-редакция на входе, contract enforcement.
2. Streaming слой
Потоковые джобы (Flink/Spark Structured Streaming/Beam) с дедупликацией, watermark, stateful агрегатами.
Фан-аут в хранилища и онлайн-сервисы (фичестор, антифрод).
3. Batch слой
Оркестрация (Airflow/Dagster), инкрементальные загрузки, бэктесты и ретропроцессы, SCD типы.
4. Хранение (Lakehouse)
Bronze: сырые события (append-only, immutable).
Silver: очищенные, конформные таблицы с качеством и дедупом.
Gold: витрины/марты под конкретные кейсы (BI/регуляторка/ML).
Табличные форматы с ACID (Delta/Iceberg/Hudi), разнесение по горячим/теплым/холодным слоям.
5. Сервинг и доступ
BI/SQL (Trino/Presto/DuckDB), семантический слой (metrics layer), API/GraphQL, Feature Store для онлайн/офлайн согласованности.
6. Говернанс и безопасность
Каталог/линедж, DQ-правила, политический движок доступа (RBAC/ABAC), маскирование/Tokenization, WORM-архив для отчетов.
4) Контракты и схемы
Контракты данных: OpenAPI/AsyncAPI/JSON Schema/Avro.
Эволюция: семантические версии; backward-compatible изменения — добавление nullable полей; breaking — только с `/v2` и двойной запись на период миграции.
Регистры: Schema Registry, каталог доменов (Payments, Gameplay, Marketing).
5) Паттерны интеграции
CDC (Change Data Capture): из OLTP в шину (Debezium), партиционирование по ключам домена.
Outbox/Inbox: гарантированная доставка событий доменной логики.
Exactly-Once/Effectively-Once: транзакции в стейте, идемпотентные sink’и, ключи дедупликации.
Late Data & Watermarks: обработка запаздывающих событий; окна с allowed lateness.
Reprocessing: идемпотентные пайплайны, time-travel, snapshot-исправления.
6) Модель Lakehouse: bronze/silver/gold
Bronze (raw):- Партиции по времени (event_date) и рынку (jurisdiction).
- Только добавление; хранение исходного payload для форензики.
- Нормализованные типы, справочники, дедупликация по `(event_id, event_time)`.
- Верификация FK, стандартизация валют/таймзон, обогащение.
- Денормализованные витрины (GGR, RG-скоринг, LTV, когортные таблицы).
- SLA на обновление, агрегаты под BI и отчетность.
7) Качество данных (Data Quality)
Правила: схемная валидация, диапазоны, уникальность, полнота, referential integrity.
Профилирование: дистрибуции, кардинальность, «дрейф» признаков.
Мониторинг: p50/p95 задержка пайплайна, drop-rate, error budget.
Degradation policy: автоматический фоллбэк (последний снэпшот), алерты и t-тесты на метрики.
yaml table: silver. payments rules:
- name: amount_positive type: range column: amount min: 0. 01
- name: currency_valid type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: unique_tx type: unique columns: [transaction_id]
slo:
freshness_minutes: 15 completeness_percent: 99. 5
8) Приватность и комплаенс
PII-минимизация и маскирование: хранить псевдо-ID, отделять look-up маппинги.
Регионализация: гео-локальные бакеты/каталоги (EEA/UK/BR), «data residency».
Правовые операции: DSAR/RTBF (вычислимые проекции и селективные редактирования), Legal Hold, неизменяемые архивы отчетов.
Логирование доступа: аудит чтений «чувствительных» таблиц, break-glass и JIT-доступ.
9) Наблюдаемость и управление
Линедж: автоматическая трассировка зависимостей от источника до витрины.
Метрики пайплайнов: throughput, lag, failure-rate, cost/GB, cost/query.
Трассировка (OTel): `trace_id` из приложений прокидывается в события → строим сквозной путь запроса.
Алерты: SLO-бюджеты, аномалии свежести/объема/кардинальности.
10) Доступ и модель безопасности
Категории данных: public / internal / confidential / restricted.
Политики: row/column-level security; динамическое маскирование (PAN/IBAN/email).
Управление ключами: KMS/CMK, шифрование at-rest/in-transit, ротация.
Сегрегация обязанностей: раздельные роли прод/аналитика/админ/ревьюер.
11) Data Mesh и продуктовый подход
Домены: Payments, Gameplay, Marketing, Risk, Compliance.
Data Product: владелец, SLA свежести, словарь полей, тесты, версии, метрика потребления.
Контракты между доменами: версионируемые, с backward-совместимостью, тесты-потребители (consumer-driven).
12) Фичестор и ML-потоки
Feature registry: описание признаков, источники, трансформации, SLO.
Онлайн/офлайн согласованность: один код трансформации, задержка онлайн-материализации ≤ 200–500 мс.
Мониторинг дрейфа: PSI/KS, автоалерты и откаты моделей, контроль PII.
Журнал экспериментов: метаданные, версии, reproducibility, модельные карты.
13) Финмодель и cost-оптимизация
Партиционирование и Z-order/Cluster по частым предикатам.
Холодное хранение и TTL для неиспользуемых таблиц, VACUUM.
Materialized views только под устойчивые паттерны запросов.
Квоты и бюджеты для тяжелых джобов; chargeback по командам.
14) Региональная и мульти-тенантная топология
Multi-region active-active: репликации тем и таблиц, независимые pipeline-периметры.
Failover/DR: RPO/RTO цели, снапшоты метаданных оркестратора, проверка восстановления.
Мульти-тенантность: изоляция каталогов/ключей/квот, маркировка tenant_id.
15) Процессы и RACI (вкратце)
R: Data Platform (ингест, хранение, оркестрация), Data Engineering (трансформации).
A: Head of Data / Chief Data Officer.
C: Compliance/Legal/DPO, Архитектура, SRE.
I: BI/Аналитика, Продукт, Маркетинг, Финансы.
16) SLO/SLI для потоков
Свежесть (freshness): p95 задержка Silver ≤ 15 мин, Gold (daily) готово ≤ 06:00 лок. времени.
Полнота: ≥ 99.5% событий за окно T.
Достоверность: error-rate проверок DQ < 0.5% от объема.
Доступность сервинга: ≥ 99.9% для BI/Feature API.
17) Шаблоны таблиц и партиционирования
sql
-- Bronze: Deposit events
CREATE TABLE bronze. payment_deposits (
event_time TIMESTAMP,
event_id STRING,
user_pseudo_id STRING,
amount DECIMAL(18,2),
currency STRING,
psp_ref STRING,
payload VARIANT
)
PARTITION BY DATE(event_time)
CLUSTER BY (currency);
-- Silver: normalized model
CREATE TABLE silver. payments AS
SELECT event_id,
CAST(event_time AS TIMESTAMP) AS ts,
user_pseudo_id,
amount,
currency,
psp_ref
FROM bronze. payment_deposits
QUALIFY ROW_NUMBER() OVER (PARTITION BY event_id ORDER BY ts) = 1;
18) Оркестрация и DevX
Infra-as-Code: репозитории пайплайнов, тесты, ревью, GitOps.
Data Contracts CI: линтеры схем, DQ-тесты до деплоя.
Backfill-фреймворк: безопасные ретропроцессы с ограничением R/W и idempotency.
Каталоги и шаблоны: генераторы пайплайнов (cookie-cutter), best-practices.
19) Дорожная карта внедрения
MVP (4–6 недель):1. Шина событий + ingest из 2–3 ключевых источников (OLTP CDC, API-шлюз).
2. Lakehouse Bronze/Silver, формат с ACID, каталог и базовые DQ-правила.
3. 1–2 Gold-витрины (ежедневный GGR и конверсионная воронка).
4. Метрики lag/completeness, базовый lineage, RBAC и маскирование PII.
Фаза 2 (6–12 недель):- Streaming-агрегаты (p95 latency ≤ 5 мин), Feature Store, RG/AML витрины.
- Семантический слой метрик, SLA на отчетность; cost-дэшборды.
- Регионализация (EEA/UK), DSAR/RTBF процедуры, Legal Hold для артефактов.
- Data Mesh: продуктовые домены, consumer-driven contracts.
- ML-операции с мониторингом дрейфа, автосогласование онлайн/офлайн.
- Автоматические симуляции изменений схем (impact analysis) и «what-if» по стоимости.
20) Частые ошибки и как их избегать
Сырые payload’ы без схем: внедрить schema-first, регистр и CI-валидацию.
Отсутствие дедупликации: ключи событий и idempotent-синк в Silver.
Смешение PII с аналитикой: отделять маппинги и маскировать поля.
Gold без владельца: назначить owner, SLO и метрики потребления.
Нет reprocessing-стратегии: time-travel, версионирование логики, контроль «двойного учета».
Неуправляемая стоимость: партиции, компрессия, TTL, наблюдаемость стоимости.
21) Глоссарий (кратко)
CDC — захват изменений из OLTP.
Outbox — публикуем доменные события транзакционно.
Watermark — оценка полноты потока для окон.
Lakehouse — data lake + ACID-таблицы.
Data Product — продуктовая единица данных с владельцем и SLO.
Feature Store — согласованная раздача признаков ML.
22) Итог
Архитектура потока данных — это управляемая система договоренностей: четкие контракты, наблюдаемость, безопасность и стоимость под контролем. Следуя описанным паттернам (schema-first, bronze/silver/gold, CDC+Outbox, DQ и lineage, privacy-by-design), платформа надежно снабжает бизнес, комплаенс и ML качественными данными с предсказуемыми SLO и понятной стоимостью владения.