Սթրիմինգը և ջրհեղեղի վերլուծաբանը
1) Նշանակումն ու արժեքը
Սթրիմինգի ֆորումը ապահովում է «ամռանը» որոշումների ընդունումը
Անտիֆրոդ/AML 'դեպոզիտների կառուցվածքի հայտնաբերումը, velocity-հարձակումը, պրովայդերների անոմալիան։
Responsible Gaming (RG) 'սահմանների ավելցուկ, ռիսկի-փամփուշտներ, ինքնախաբեություններ։
Վիրահատություններ/MSE 'SLA-ի քայքայումը, սխալների աճը, վաղ ազդանշանները։
Ապրանքը/մարքեթինգը 'կերպարների, առաքելությունների/որոնումների, real-time սեգմենտացիայի իրադարձությունները։
Near-real-time: GGR/NGR վիտրիններ, վիրահատական վահանակներ։
Նշված հատկությունները 'p95 end-to-end 0։ 5-5 s, ամբողջական թիվ 99։ Հինգ տոկոսը, կառավարվող արժեքը։
2) Ստանդարտ ճարտարապետությունը
1. Ingest/Edge
`/events/batch` (HTTP/2/3), gRPC, OTel Collector.
Սխեմաների վալիդացիա, հակա կրկնօրինակներ, գեո-միկրոակտիզացիա։
2. Իրադարձությունների անվադողեր
Kafka/Redpanda («user _ id/tenae/market»)։
Retention 3-7 օր, DLQ/« կարանտին »հաղորդագրությունների համար։
3. Ջրհեղեղի վերամշակում
Stateful-վիրահատները, CEP, watermark, allowed lateness, deduplication։
Flink / Spark Structured Streaming / Beam.
Հարստացումը (Redis/Scylla/ClickHouse-Lookup), asinhron I/O թայմաուտներով։
4. Serving/wwwwards
ClickHouse/Pinot/Druid-ը րոպեում/վայրկյան միավորման և տաշբորդի համար։
Feature Store (onation) մոդելների սկորինգի համար։
Alert-topics no SOAR/ticeting/webhuki։
5. Երկարատև պահպանումը (Lakehouse)
Bronze (raw), Silver (clean), Gold (serve) — Parquet + Delta/Iceberg/Hudi.
Repley/bektests, time-travel։
6. Դիտարկումը
Metriki plins, tresing (OTel), logs, lineage։
3) սխեմաներ և պայմանագրեր
Schema-first: JSON/Avro/Corobuf + 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 to: Ենթաբազմություն, «late = 108», 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`.
CEP-patterns: կառուցվածք (<շեմն, N- ը, T պատուհանի հետևում), device-switch, RG-fatigue։
Prindocod 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 + կուսակցության բանալիները ապահովում են տեղական կարգը։
Idempotention: "event _ id '+ dedup-state (TTL 24-72 ժամ)։
Sink: Գործարքային համայնքները (2-phant) կամ ups.ru/merge-idempotenty։
Medibox/Inbox: OLTP-ի հիբրիդային իրադարձությունների երաշխավորված հրատարակումը։
7) Իրական ժամանակում հարստացումը
Lookup: Redis/Scyla (RG-limits, KYC կարգավիճակը, BIN 35MCC, IP no Geo/ASN)։
Ասինխրոն մարտահրավերներ ՝ սանկցիոն/RER API թայմաուտների և ֆալբակի հետ («unknown»)։
FX/թայմզոն 'գումարների նորմալացում և շուկայի տեղական ժամանակը («fx _ source», «tz»)։
8) Սերվինգը և real-time վիտրինները
ClickHouse/Pinot/Winuid: Միավորումներ րոպեում/վայրկյանում, materialized views։
Gold-stream: GGR/RG/AML, SLA '1-5 ռուբլու ուշացման համար
API/GraphQL 'ցածր լատենտ dashbords և արտաքին ինտեգրիաների համար։
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 ental.ru (քննադատական), 245 s (մնացած)։
Completeness պատուհանի T-99։ 5%.
Սխեմաների սխալները 0։ 1%; իրադարձությունների մասնաբաժինը 'trace _ id' 3598%։
Սթրիմ-4999-ի հասանելիությունը։ 9%.
Դաշբորդները
Խմբակցությունների/տոպիկների ճամբարները, օպերատորների ժամանակը, վիճակի չափը։
Վորոնկա «իրադարձությունը հաստատվում է քեյսի կանոնով», «տաք» քարտեզ, late-ratio։
Արժեքը ՝ cost/GB, cost/query, chekpoints/repley արժեքը։
10) Գաղտնիությունը և կոմպլենսը
PII-նվազեցումը 'ID կեղծանունացում, դաշտերի դիմակավորում, PAN/IBAN թունավորում։
Տվյալների ռեզոնանսը 'տարածաշրջանային փոխակրիչներ (EFC/UK/RF), առանձին շարժիչների բանալիներ։
Իրավական վիրահատությունները ՝ DSAR/RTBF-ը downstream վիտրիններում, Legal Hold-ի համար։
Աուդիտ 'հասանելիության լույսեր, որոշումների անփոփոխ արխիվներ։
11) Տնտեսագիտություն և արտադրողականություն
Բանալիները և շարդինգը 'խուսափեք «տաք» կոմպոզիցիայից (salting/composite key)։
Վիճակը ՝ խելացի TTL, Snepshots, Rocult DB/backend steit։
Կանխատեսումը 'up-front reduce աղմկոտ հոսքերի համար։
Sampling: Թույլ տվեք ոչ ռիթմիկ չափումների վրա (ոչ գործարքների/համակցությունների վրա)։
Chargeback: բյուջեներ թեմաների/ջոբայի, քվոտաների և թիմերի վրա։
12) Ջրհեղեղի DQ (որակը)
Ingest-validation (schema, enums, size), dedup «(event _ id, source)»։
Հոսքի վրա 'completeness/dup-rate/late-ratio, պատուհանների վերահսկողություն (կրկնակի հաշվարկ չկա)։
Արձագանքի քաղաքական գործիչները ՝ critical ww.DLQ + alert; major/minor teg և հաջորդ մաքրումը։
Նվազագույն կանոնները (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) Մուտքի անվտանգությունը և rele.ru-վերահսկողությունը
RBAC/ABAC 'առանձին դերեր հոսքերի կարդալու, կանոնների/մոդելների փոփոխության համար։
Dron.rl: Կանոնները և մոդելները «2 բանալին» միջոցով։
Canary/A/B 'կանոնների և մոդելների մութ արձակումը, precision/recall վերահսկումը։
Գաղտնիքները ՝ KFC/CMK, հիբրիդային ռոտացիա, բլոգերում գաղտնիքների արգելք։
14) Գործընթացներ և RACI
R (Responsible): Streaming Platform (infra/linfra), Domain Analytics (կանոնները/fics), MLOps (կարբինգ)։
A (Accountable): Head of Live/Risk/Compliance։
C (Consulted): DPO/Legal (PII/retention), DRE (SLO/պատահականություն), Ճարտարապետություն։
I (Informed) 'ապրանքը, աջակցությունը, Մարքեթինգը, Ֆինանսները։
15) Իրականացման ճանապարհային քարտեզը
MVP (2-4 շաբաթ)
1. Kafka/Redpanda + երկու քննադատական կացիններ («payments», «auth»)։
2. Flink-ջոբա watermark, dedup և մեկ CEP-2019 (AML կամ RG)։
3. ClickHouse/Pinot վիտրինը 1-5 րոպե, dashbords lag/completeness։
4. Պատահականության ալիքը (webhuki/Jira), հիմնական SLO և ալերտներ։
Aleksanda 2 (4-8 շաբաթ)
Առցանց հարստացումը (Redis/Scylla), Feature Store, ասինխրոն lookups։
Կանոնների կառավարումը որպես կոդ, կանարեկուլներ, A/B
Հոսող DQ-ը, փոխակրիչների տարածումը, DSAR/RTBF ընթացակարգերը։
Բրազիլիա 3 (8-12 շաբաթ)
Multi-active-տարածաշրջանը, replay-սիմուլյատոր «what-if», շեմերի ավտոկալիբրոն։
Ամբողջական Gold-stream վիտրինները (GGR/RG/AML), near-real-time հաշվետվությունները։
Stoimost dashbords, 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-ը idempotent ֆիլտրն է
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
17) Չեկ թուղթ մինչև վաճառելը
- Registry-ում, back-compat-ը կանաչ են։
- Ներառված են watermark/allowed lateness, dedup և DLQ-ը։
- SLO և alerts (lag/late/dup/state size)։
- Հարստացում քեշերի և թայմաուտների հետ, fallback «unknown»։
- RBAC/dult-24l կանոնների/մոդելի վրա, բոլոր փոփոխությունները տրամաբանվում են։
- Կանոնները, վիտրինը և runbook "և/replat։
18) Հաճախակի սխալներ և ինչպես խուսափել դրանցից
Անտեսանելի event-time: Առանց watermarks մետրերը «լողում են»։
Ոչ մի դեդուպա 'կեղծ ալտերտեր և կրկնակի տրիբունաներ։
Տաք բանալիներ 'կուսակցության խաչմերուկը salting/resharding։
Սինխրոն արտաքին API-ը տաք ճանապարհին 'միայն async + kash։
Չկառավարվող արժեքը 'կանխատեսումը, TTL վիճակը, քվոտաները, cost-dashbords։
Սիմուլյատորի բացակայությունը 'առանց «replay» -ի արտանետումները հանգեցնում են ռեգրեսիայի։
19) Գլոսարիա (հակիրճ)
CEP-ը Complex Event Processing-ն է (իրադարձությունների արտոնագրեր)։
Watermark-ը պատուհանների պատրաստման սահմանն է event-time-ով։
Allowed Lateness-ը ուշացած իրադարձությունների լուծումն է։
Stateful Operics-ը պահպանված վիճակի օպերատոր է։
Feature Store-ը համաձայնեցված նշանների սերվինգն է (on.ru/24.ru)։
20) Արդյունքը
Սթրիմինգը և հոսքային վերլուծությունը կառավարվող համակարգ են 'պայմանագրեր, պատուհաններ և watermarks, stateful տրամաբանություն և CEP, հարստացում և իրական-time վիտրինի, SLO-ի և դիտարկման, գաղտնիության և արժեքի վերահսկման տակ։ Նկարագրված պրակտիկային հետևելով ՝ պլատֆորմը ստանում է ռիսկի հուսալի դետեկտորներ, վահանակներ և կերպարներ կանխատեսելի լատենտով և ծախսերով։