GH GambleHub

Стриминг және ағындық талдау

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.
Flink SQL мысалы (10-минут velocity депозиттер):
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.

CEP жалған құжаты:
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: дашбордтар мен сыртқы интеграциялар үшін төмен жасырындылық.

Мысал ClickHouse (минутына GGR):
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, мысал):
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 рәсімдері.
3-фаза (8-12 апта):
  • 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 және бақылау, құпиялылық және бақылау құны. Сипатталған тәжірибелерге сүйене отырып, платформа сенімді тәуекел детекторларын, жедел панельдерді және болжамды жасырындылық пен шығындармен дербестендіруді алады.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.