Стриминг және ағындық талдау
1) Мақсаты және құндылығы
Стримингтік контур «ұшуда» шешім қабылдауды қамтамасыз етеді:- Антифрод/AML: депозиттердің құрылымын, velocity-шабуылдарды, провайдерлердің ауытқуларын анықтау.
- Responsible Gaming (RG): лимиттерден асып кету, тәуекел-паттерндер, өзін-өзі жоққа шығару.
- / SRE операциялары: SLA деградациясы, қате жарылыстары, инциденттердің ерте сигналдары.
- Өнім/маркетинг: дербестендіру оқиғалары, миссиялар/квесттер, real-time сегментациясы.
- near-real-time есептілігі: GGR/NGR витриналары, операциялық панельдер.
Мақсатты сипаттамалары: p95 end-to-end 0. 5-5 с, толымдылығы ≥ 99. 5%, басқарылатын құн.
2) Эталондық сәулет
1. Ingest/Edge
`/events/batch` (HTTP/2/3), gRPC, OTel Collector.
Схемаларды валидациялау, анти-дубликаттар, гео-маршруттау.
2. Оқиға шинасы
Kafka/Redpanda ('user _ id/tenant/market' бойынша партиялану).
Retention 3-7 күн, компрессия, «сынған» хабарламалар үшін DLQ/« карантин ».
3. Ағынды өңдеу
Flink / Spark Structured Streaming / Beam.
Stateful-операторлар, CEP, watermark, allowed lateness, дедупликация.
Байыту (Redis/Scylla/ClickHouse-Lookup), асинхронды I/O таймауттары бар.
4. Сервинг/жедел сөрелер
ClickHouse/Pinot/Druid минуттық/секундтық агрегация және дашбордтар үшін.
Модельдер скорингі үшін Feature Store (online).
Алерт-топиктер → SOAR/тикетинг/вебхактар.
5. Ұзақ уақыт сақтау (Lakehouse)
Bronze (raw), Silver (clean), Gold (serve) — Parquet + Delta/Iceberg/Hudi.
Реплика/бэктесттер, time-travel.
6. Бақылау мүмкіндігі
Пайплайндар метрикасы, трейсинг (OTel), логи, lineage.
3) Схемалар мен келісімшарттар
Schema-first: JSON/Euro/Protobuf + Registry, әрбір оқиғада 'schema _ version'.
Эволюция: back-compatible - жаңа nullable өрістер; breaking - '/v2 '+ қосарлы жарияланым.
Міндетті өрістер: 'event _ time' (UTC), 'event _ id', 'trace _ id', 'user. pseudo_id`, `market`, `source`.
4) Терезелер, watermarks және кешіккен деректер
Терезелер:- Tumbling (бекітілген), Hopping (жабылған), Session (белсенділігі бойынша).
- Watermark: event-time бойынша «білім» шегі; мысалы, 2-5 минут.
- Late data: түзетулердің қосымша эмиссиясы, «late = true», күшті артта қалу кезінде DLQ.
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream.payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);
5) Stateful-агрегация және CEP
Кілт: 'user _ id', 'device _ id', 'payment. account_id`.
Жай-күйі: жылжымалы сомалар/есептеуіштер, сессиялар, дедупқа арналған bloom-сүзгілер.
CEP-паттерндер: құрылымдау (<табалдырық, N рет, T терезесі үшін), device-switch, RG-fatigue.
python if deposits.count(last=10MIN) >= 3 and deposits.sum(last=10MIN) > THRESH and all(d.amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, window_snapshot())
6) Exactly-Once, тәртіп және іспеттілік
Шина: at-least-once + партияландыру кілттері жергілікті тәртіпті қамтамасыз етеді.
Ұқсастығы: 'event _ id' + дедуп-стейт (TTL 24-72 сағ).
Sink: транзакциялық коммиттер (2-phase) немесе upsert/merge-іспеттілік.
Outbox/Inbox: OLTP домендік оқиғаларды кепілді жариялау.
7) Нақты уақытта байыту
Lookup: Redis/Scylla (RG-лимиттер, KYC-мәртебе, BIN → MCC, IP → Geo/ASN).
Асинхрондық шақырулар: санкциялық/РЕР АРI таймаутпен және fallback («unknown»).
FX/таймзон: сомаларды қалыпқа келтіру және нарықтың жергілікті уақыты ('fx _ source', 'tz').
8) Сервинг және real-time витриналар
ClickHouse/Pinot/Druid: минуттар/секундтар бойынша агрегациялар, materialized views.
Gold-stream: GGR/RG/AML, SLA жедел кестелері кідіртуге ≤ 1-5 минут.
API/GraphQL: дашбордтар мен сыртқы интеграциялар үшін төмен жасырындылық.
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream.game_events
GROUP BY ts_min, market, provider_id;
9) Бақылау және SLO
SLI/SLO (бағдарлар):- p95 ingest → alert ≤ 2 с (критикалық), ≤ 5 с (қалған).
- Completeness терезесі T ≥ 99. 5%.
- 0 ≤ схемаларының қателері. 1%; 'trace _ id' оқиғаларының үлесі 98% ≥.
- Стрим-сервистің қолжетімділігі ≥ 99. 9%.
- Партиялар/топиктер бойынша лагтар, операторлардың busy time, жай-күйінің мөлшері.
- «Оқиға → ереже → кейс» құйғышы, «ыстық» кілттердің картасы, late-ratio.
- Құны: cost/GB, cost/query, чекпойнттардың/реплейлердің құны.
10) Құпиялылық және комплаенс
PII-минимизация: ID бүркемелеу, өрістерді бүркемелеу, PAN/IBAN токенизациясы.
Деректердің резиденттілігі: өңірлік конвейерлер (EEA/UK/BR), жеке шифрлау кілттері.
Құқықтық операциялар: downstream сөрелерінде DSAR/RTBF, кейстер/есептер үшін Legal Hold.
Аудит: қол жеткізу журналдары, шешімдердің өзгермейтін мұрағаттары.
11) Экономика және өнімділік
Кілттер және шардинг: «ыстық» кілттерден (salting/composite key) аулақ болыңыз.
Жай-күйі: ақылға қонымды TTL, снэпшоттар, тюнинг RocksDB/бэкенд стейт.
Алдын ала қосылу: up-front reduce шулы ағындар үшін.
Sampling: мысалы, критикалық емес метрикаларда (транзакцияларда/комплаенсте емес).
Chargeback: тақырыптар бойынша бюджеттер/джобтар, квоталар және командалар бойынша аллокация.
12) DQ ағыны (сапасы)
Ingest-валидация (schema, enums, size), дедуп '(event_id, source)'.
Ағында: completeness/dup-rate/late-ratio, терезелерді бақылау (қосарлы есеп жоқ).
Реакция саясаты: critical → DLQ + алерт; major/minor → тег және кейінгі тазалау.
yaml stream: payments rules:
- name: schema_valid type: schema severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: dedup_window type: unique keys: [event_id]
window_minutes: 1440
13) Қол жеткізу қауіпсіздігі және release-бақылау
RBAC/ABAC: ағындарды оқуға арналған жеке рөлдер, ережелерді/модельдерді өзгерту.
Dual control: ережелер мен үлгілерді «2 кілт» арқылы шығару.
Canary/A/B: ережелер мен модельдерді қараңғы іске қосу, precision/recall бақылау.
Құпиялар: KMS/CMK, тұрақты ротация, логтарда құпияларға тыйым салу.
14) Процестер және RACI
R (Responsible): Streaming Platform (инфра/релиздер), Domain Analytics (ережелер/фичтер), MLOps (скоринг).
A (Accountable): Head of Data/Risk/Compliance домендері бойынша.
C (Consulted): DPO/Legal (PII/retention), SRE (SLO/инциденттер), Сәулет.
I (Informed): Өнім, Қолдау, Маркетинг, Қаржы.
15) Енгізу жол картасы
MVP (2-4 апта):1. Kafka/Redpanda + екі сыни топика ('payments', 'auth').
2. Flink-джоба watermark, дедуп және бір CEP-ережесімен (AML немесе RG).
3. ClickHouse/Pinot витринасы 1-5 мин, дашбордтар lag/completeness.
4. Инцидент-арна (вебхактар/Jira), базалық SLO және алерталар.
2-фаза (4-8 апта):- Онлайн-байыту (Redis/Scylla), Feature Store, асинхронды lookups.
- Ережелерді код ретінде басқару, канареялық релиздер, A/B
- DQ ағыны, конвейерлерді аймақтандыру, DSAR/RTBF рәсімдері.
- active-active көп аймағы, «what-if» реплей-симуляторы, табалдырықтарды автокалибрлеу.
- Толыққанды Gold-stream витриналары (GGR/RG/AML), near-real-time есептілігі.
- Құндық дашбордтар, chargeback, DR-жаттығулар.
16) Мысалдар (фрагменттер)
Flink CEP — device switch:sql
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY event_time
MEASURES
FIRST(A.device_id) AS d1,
LAST(B.device_id) AS d2,
COUNT() AS cnt
PATTERN (A B+)
DEFINE
B AS B.device_id <> PREV(device_id) AND B.ip_asn <> PREV(ip_asn)
) MR
Kafka Streams - демпотенттік сүзгі:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
17) Азық-түлік алдындағы чек-парағы
- Registry, back-compat тесттеріндегі схемалар мен келісімшарттар жасыл.
- watermark/allowed lateness, дедуп және DLQ қосылған.
- SLO және алерталар (lag/late/dup/state size) теңшелген.
- Кэштермен және таймауттармен байыту, fallback «unknown».
- RBAC/dual-control ережелерге/модельдерге, барлық өзгерістерге талдау жасалады.
- Ережелер, витриналар және runbook 'және реплика/қайтару құжаттамасы.
18) Жиі қателер және оларды болдырмау
Ignor event-time: watermarks метрикасыз «жүзеді».
Дедуп жоқ: жалған алерта және қосарлы есеп.
Ыстық кілттер: партия қисаюы → salting/resharding.
Ыстық жолдағы синхронды сыртқы API: тек async + кэш.
Басқарылмайтын құн: алдын ала агрегаттау, TTL жай-күйі, квоталар, cost-дашбордтар.
Симулятордың болмауы: «replay» жоқ шығулар регрессияға әкеледі.
19) Глоссарий (қысқаша)
CEP - Complex Event Processing (оқиға үлгілері).
Watermark - терезелердің event-time бойынша дайындық шегі.
Allowed Lateness - кешігіп қалған оқиғаларға жол беру.
Stateful Operator - күйі сақталған оператор.
Feature Store - белгілердің келісілген сервингі (online/offline).
20) Қорытынды
Стриминг және ағындық талдау - бұл басқарылатын жүйе: келісімшарттар, терезелер және watermarks, stateful-логика және CEP, байыту және real-time витриналар, SLO және бақылау, құпиялылық және бақылау құны. Сипатталған тәжірибелерге сүйене отырып, платформа сенімді тәуекел детекторларын, жедел панельдерді және болжамды жасырындылық пен шығындармен дербестендіруді алады.