Архітектура потоку даних
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 і зрозумілою вартістю володіння.