הזרמה וזרימה של אנליטיות
1) מטרה וערך
מעגל ההזרמה מספק קבלת החלטות:- אנטי-פראוד/AML: זיהוי מבנה של מרבצים, התקפות מהירות, חריגות של ספקים.
- משחקים אחראיים (RG): מעבר לגבולות, דפוסי סיכון, הדרה עצמית.
- מבצעים/SRE: דלדול SLA, התפרצויות שגיאה, אותות תקרית מוקדמים.
- מוצר/שיווק: אירועי פרסונליזציה, משימות/מסעות, קטגמנטציה בזמן אמת.
- דיווח כמעט בזמן אמת: תצוגות GGR/NGR, לוחות הפעלה.
מאפייני המטרה: p95 מקצה לקצה 0. 5-5 אס, שלמות 99. 5%, ערך מנוהל.
2) ארכיטקטורת התייחסות
1. בלע/קצה
'/אירועים/אצווה '(HTTP/2/3), GRPC, OTEL אספן.
אימות של מזימות, אנטי-כפילויות, ניתוב גיאו.
2. אוטובוס אירועים
קפקא/רדפנדה (מחולק על ידי ”משתמש _ id/דייר/שוק”).
שימור 3-7 ימים, דחיסה, DLQ/” הסגר” עבור הודעות ”שבורות”.
3. הזרמה
Flink/Spark Streaming/Beam.
הצהרות מכובדות, CEP, סימן מים, איחור מותר, שכפול.
העשרה (Redis/Syllla/Clickhouse-Lookup), asynchronous I/O עם פסקי זמן.
4. הגשה/תצוגות מבצעיות
ClickHouse/Pinot/Druid עבור צבירה דקה/שנייה ולוחות מחוונים.
חנות תכונה (באינטרנט) עבור דוגמניות ניקוד.
התראה על נושאים * SOAR/ticketing/webhooks.
5. אחסון ארוך טווח (בית לייקהאוס)
ברונזה (גולמי), כסף (נקי), זהב (הגשה) - פרקט + דלתא/קרחון/האדי.
שידור חוזר/הצגות אחוריות, מסע בזמן.
6. יכולת תצפית
מדדי צינור, איתור (אוטל), יומנים, שושלות.
3) מזימות וחוזים
Schema-first: JSON/Avro/Protobuf + Registry, ”schema _ version” בכל אירוע.
אבולוציה: אחורי תואם שדות חדשים; שובר '/v2 '+ פרסום כפול.
שדות נדרשים הם "event _ time" (UTC), "event _ id'," trace _ id', "user. pseudo_id', 'שוק', 'מקור'.
4) חלונות, סימני מים ונתונים מאוחרים
חלונות:- מתגלגל, מקפץ, מושב.
- סימן מים: סף ”ידע” בזמן האירוע; למשל 2-5 דקות.
- נתונים מאוחרים: התאמות מראש, ”מאוחר = נכון”, 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) צבירה מדורגת וסמ "פ
מפתח: "משתמש _ id'," התקן _ id', "תשלום. account_id'.
מצב: הזזת סכומים/מונים, הפעלות, מסנני פריחה לשכפול.
תבניות CEP: מבנה (<סף, Me N פעמים, לכל חלון T), החלפת התקן, עייפות RG.
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) בדיוק-פעם אחת, סדר ואידישות
אוטובוס: לפחות פעם אחת + מפתחות מחיצה מספקים סדר מקומי.
idempotence: "event _ id' + dedup state (TTL 24-72 h).
Sink: transactional מתחייב (2 פאזות) או upsert/merge-idempotency.
Outbox/Inbox: מובטח פרסום של אירועי דומיין מ ־ OLTP.
7) העשרה בזמן אמת
Lookup: Redis/Sylla (גבולות RG, מצב KYC, BIN # MCC, IP # Geo/ASN).
שיחות אסינכרוניות: סנקציות/APP API עם פסקי זמן ונשורת (”לא ידוע”).
FX/timezone: נורמליזציה של כמויות וזמן שוק מקומי (”fx _ source”, ”tz”).
8) הגשה וחנויות בזמן אמת
ClickHouse/Pinot/Druid: צבירה של דקות/שניות, תצוגות ממשיות.
זרם זהב: טבלאות תפעוליות GGR/RG/AML, SLA לעיכוב של 1-5 דקות.
API/GraphQL: Latency Latency עבור לוחות מחוונים ואינטגרציה חיצונית.
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 בליעה = התראה 2 s (קריטית), 5 s (שיווי משקל).
- שלמות של חלון T-99. 5%.
- שגיאות סכימה הקובעות 0. 1%; אחוז האירועים עם "trace _ id' will 98%.
- זמינות שירות זרם 99. 9%.
- לאגות צד/נושא, מפעילי זמן עמוסים, גודל המדינה.
- Funnel ”sobytiye # pravilo # keys,” מפה של מפתחות ”חמים”, יחס מאוחר.
- עלות: עלות/GB, עלות/שאילתה, עלות של נקודות ביקורת/הילוכים חוזרים.
10) פרטיות וציות
מזעור PII: זיהוי פסאודונימיזציה, מיסוך שדה, אסימון PAN/IBAN.
תושבות נתונים: צינורות אזוריים (EEA/UK/BR), מפתחות הצפנה אישיים.
פעולות משפטיות: DSAR/RTBF במחסנים במורד הזרם, Ligal Hold עבור מקרים/דיווחים.
ביקורת: יומני גישה, ארכיוני פתרונות בלתי משתנים.
11) כלכלה ופרודוקטיביות
מפתחות ומחוונים: הימנע ממפתחות ”חמים” (מלוח/מקש מרוכב).
מצב: TTL סביר, תמונות, כוונון מצב DDB/backend.
הפחתה מראש לזרמים רועשים.
דגימה: תקפה על מדדים שאינם קריטיים (לא על עסקאות/ציות).
צ 'רג' בק: תקציבים לנושאים/עבודות, מכסות והקצאת צוות.
12) הזרמת DQ (איכות)
Inbleged-validation (סכימה, אינומים, גודל), dedup '(event_id, מקור)'.
על הזרם: שלמות/dup-rate/late-ratio, בקרת חלונות (אין ספירה כפולה).
מדיניות תגובה: התראת DLQ + קריטית; תג גדול/מינורי ואז נקי.
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) אבטחת גישה ובקרת שחרור
תפקידים נפרדים לקריאת אשכולות, שינוי כללים/מודלים.
שליטה כפולה: השלכה של כללים ודגמים דרך ”2 מפתחות”.
קנרית/A/B: כלל אפל וריצות מודל, שליטה מדויקת/חזרה.
סודות: KMS/CMK, סיבוב רגיל, איסור על סודות ביומנים.
14) תהליכים ו ־ RACI
R (אחראי): הזרמת פלטפורמה (אינפרה/משחרר), Domain Analytics (חוקים/תכונות), MLOps (ניקוד).
ראש מחלקת נתונים/סיכון/ציות לתחום.
C (ייעוץ): DPO/Legal (פיל "א/שימור), SRE (תקריות/SLO), ארכיטקטורה.
מוצר, תמיכה, שיווק, פיננסים.
15) מימוש מפת דרכים
MVP (2-4 שבועות):1. קפקא/רדפנדה + שני נושאים קריטיים ('תשלומים', 'auth').
2. עבודת פלינק עם סימן מים, שכפול וחוק CEP אחד (AML או RG).
3. קליק האוס/פינו תצוגה 1-5 דקות, לוחות מחוונים פיגור/שלמות.
4. ערוץ תקרית (webhooks/Jira), סל "ד בסיסי והתראות.
שלב 2 (שבועות 4-8):- העשרה מקוונת (Redis/Syllla), חנות תכונה, תצפיות אסינכרוניות.
- ניהול חוקים כקוד, הקנרית משחררת, א/ב.
- הזרמת DQ, איחוד מחדש של צינורות, הליכי DSAR/RTBF.
- רב-אזורי פעיל-פעיל, מה-אם חוזר סימולטור, כיול אוטומטי של סף.
- תצוגות בזהב מלא (GGR/RG/AML), מדווחות כמעט בזמן אמת.
- לוחות מחוונים, גב מטען, תרגילי ד "ר.
16) דוגמאות (קטעים)
פלינק CEP - מתג התקן: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
נחלי קפקא - מסנן אידמפוטנטי:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
17) רשימת בדיקות לפני המכירה
[ ] מזימות וחוזים ברישום, בדיקות גיבוי ירוקות.
[ ] כלל סימני מים/איחור מורשה, dedup, ו DLQ.
[ ] הגדרות SLO והתראות (lag/late/dup/state mide).
[ העשרה ] עם מטמונים ופסקי זמן, נפילה ”לא ידוע”.
[ ] RBAC/שליטה כפולה לחוקים/מודלים, כל השינויים מחוברים.
[ ] חוקים, חנויות ומסמכי רישום ושידור חוזר.
18) טעויות תכופות וכיצד להימנע מהן
התעלם זמן אירוע: ללא סימני מים, המדדים ”לצוף”.
אין כפילות: התראות שווא וספירה כפולה.
מפתחות חמים: עיוות של מפלגות.
API חזית-end סינכרוני בנתיב החם: async + מטמון בלבד.
עלות לא מנוהלת: פרגמנטים, מדינות טי-טי-אל, מכסות, לוחות-מחוונים.
חוסר סימולטור: התפרצויות ללא ”שידור חוזר” מובילות לנסיגות.
19) גלוסרי (קצר)
CEP - עיבוד אירועים מורכב.
סימן מים - הגבלת מוכנות החלון לפי זמן האירוע.
אפשר איחור - סובלנות לאירועים מאוחרים.
מרכזנית מדינתית - מרכזנית עם מדינה שמורה.
גלישת מאפיינים מתואמת (באינטרנט/לא מקוונת).
20) השורה התחתונה
אנליטיות הזרמה וזרימה הן מערכת מנוהלת: חוזים, חלונות וסימני מים, לוגיקה מדינתית ו-CEP, העשרה וחנויות בזמן אמת, SLO ויכולת תצפית, פרטיות וערך תחת שליטה. על ידי קיום המנהגים המתוארים, הפלטפורמה מקבלת גלאי סיכונים מהימנים, לוחות תפעוליים והתאמות אישיות עם איחור צפוי ועלות.