تجزیه و تحلیل در زمان واقعی
1) هدف و ارزش کسب و کار
تجزیه و تحلیل در زمان واقعی (RTA) واکنش در ثانیه، نه ساعت فراهم می کند:- AML/Antifraud: ساختار سپرده ها، حملات سرعت، معاملات ریسک.
- بازی مسئول (RG): بیش از محدودیت، الگوهای خطر، خود حذفی.
- SRE/عملیات: تشخیص زودهنگام تخریب SLA، انفجار خطا، بیش از حد خوشه.
- محصول و بازاریابی: محرک های شخصی سازی، مأموریت ها/مأموریت ها، تقسیم بندی در زمان واقعی.
- گزارش عملیاتی: GGR/NGR نزدیک به زمان واقعی، داشبورد سالن ها/ارائه دهندگان.
اهداف: p95 پایان به پایان 0. 5-5 с، تکمیل ≥ 99. 5٪، در دسترس بودن ≥ 99. 9%.
2) معماری مرجع
1. وارد کردن/لبه - '/events/batch '(HTTP/2/3)، gRPC، جمع کننده OTel ؛ اعتبار سنجی طرح ها، ضد تکراری، جغرافیایی مسیریابی.
2. اتوبوس رویداد - Kafka/Redpanda (مشارکت توسط 'user _ id/tenant/market'، DLQ، نگهداری 3-7 روز).
3. پردازش جریان - Flink/Spark Structured Streaming/Beam: اپراتورهای دولتی، CEP، علامت های سفید، تأخیر مجاز، مرده است.
4. غنی سازی آنلاین - جستجوی Redis/Scylla/ClickHouse (محدودیت های RG، KYC، BIN → MCC، IP → Geo/ASN)، تماس های ناهمزمان با زمان بندی و بازپرداخت.
5. سرویس - ClickHouse/Pinot/Druid (نمایشگاه های عملیاتی 1-5 دقیقه)، فروشگاه ویژگی (علائم آنلاین)، webhooks/ticketing/SOAR.
6. دریاچه - برنز/نقره/طلا برای تحکیم طولانی مدت، پخش و آشتی.
7. قابلیت مشاهده - معیارهای خط لوله، ردیابی (OTel)، سیاهههای مربوط، خط و داشبورد هزینه.
3) سیگنال ها و طبقه بندی
پرداخت: "پرداخت. واریز/برداشت/استرداد وجه
بازی: "بازی. شرط/پرداخت، جلسات.
احراز هویت و رفتار: «auth. login/failure»، سوئیچ دستگاه، سرعت.
عامل: تاخیر، نرخ خطا، راه اندازی مجدد قلب، اشباع.
انطباق: غربالگری تحریم، پرچم های RG، رویدادهای DSAR.
هر نوع دارای یک صاحب دامنه، یک طرح، SLO تازه و یک سیاست داده دیر است.
4) ویندوز، علامت های سفید و داده های دیررس
ویندوز: غلت زدن (ثابت)، پرش، جلسه.
علامت گذاری به عنوان «دانش توسط زمان» مرز (معمولا 2-5 دقیقه).
رویدادهای عقب افتاده: شماره تنظیمات اضافی، پرچم «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) CEP و تجمع stateful
کلید: 'user _ id'، 'device _ id'، 'پرداخت. account_id' است.
وضعیت: شمارنده کشویی/مبالغ، فیلتر شکوفه برای deduplication، TTL.
الگوهای CEP: ساختار (<آستانه، ≥N بار، در هر پنجره T)، سوئیچ دستگاه، خستگی RG.
python if cnt_deposits(last=10MIN) >= 3 and sum_deposits(last=10MIN) > THRESH and all(d.amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, snapshot())
6) دقیقا یک بار، سفارش و idemotence
تحویل حداقل یک بار در اتوبوس + dedup توسط 'event _ id' در پردازش (TTL 24-72 ساعت).
سفارش: پارتیشن بندی با کلید (سفارش محلی تضمین شده است).
غرق شدن: commits transactional (2-phase) یا upsert/merge idempotent.
Outbox/Inbox: انتشار معاملات رویدادهای دامنه از OLTP.
7) غنی سازی آنلاین و فروشگاه ویژگی
Lookup: محدودیت های RG، وضعیت KYC، BIN → MCC، IP → Geo/ASN، بازارها/مالیات ها، FX در زمان رویداد.
تماس های ناهمزمان: تحریم/API APP با وقفه ؛ در خطا - «ناشناخته» + retray/cache.
فروشگاه ویژگی: مذاکره آنلاین/آفلاین ؛ یک کد تبدیل.
8) فروشگاه های زمان واقعی و گشت و گذار
ClickHouse/Pinot/Druid: aggregates دوم/دقیقه، دیدگاه های تحقق یافته، SLA برای تاخیر 1-5 دقیقه.
API/GraphQL: تاخیر کم برای داشبورد/ویدجت.
هشدارها: webhooks/Jira/SOAR با زمینه غنی شده (trace_id، آخرین رویدادها).
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) معیارها، SLI/SLO و داشبورد
SLI/SLO های توصیه شده:- p95 → هشدار ≤ 2 s (قوانین بحرانی)، ≤ 5 s (دیگر).
- کامل بودن پنجره T ≥ 99 5%; اعتبار طرح ≥ 99. 9%; پوشش ردیابی ≥ 98٪
- دسترسی به خدمات جریان ≥ 99. 9%; نسبت دیرکرد ≤ 1%
- تاخیر توسط احزاب/موضوعات ؛ زمان شلوغ اپراتورها ؛ اندازه کشور
- Funnel «sobytiye → pravilo → keys», precision/recall by domain.
- کارت حرارت دیر/کامل ؛ نقشه کلید داغ
10) جریان DQ (کیفیت)
اعتبار سنجی: schema/enums/size-limits، anti-duplicates.
در جریان: کامل بودن/dup-rate/late-ratio، صحت پنجره (بدون شمارش دوگانه).
سیاست های واکنش: بحرانی → 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
11) حفظ حریم خصوصی، امنیت و اقامت
کمینه سازی PII: نام مستعار ID، پوشش حساس زمینه، نشانه PAN/IBAN.
اقامت داده ها: خطوط لوله منطقه ای (EEA/UK/BR)، کلید های KMS فردی.
DSAR/RTBF: ویرایش انتخابی در فروشگاه های پایین دست ؛ برگزاری حقوقی برای پرونده ها/گزارش ها.
حسابرسی: سیاهههای مربوط غیر قابل تغییر از تغییرات دسترسی/قانون، ورود به سیستم انتشار.
12) اقتصاد و بهره وری
Sharding/کلید: اجتناب از «داغ» کلید (شور/کامپوزیت)، تعادل احزاب.
وضعیت: TTL، عکس های فشرده، تنظیم RocksDB/state backend.
Pre-aggregations: کاهش در مراحل اولیه برای تم های پر سر و صدا.
نمونه برداری: فقط برای معیارهای غیر بحرانی (نه معاملات/انطباق).
بازپرداخت: موضوع/بودجه کار، سهمیه پخش و درخواست های سنگین.
13) فرآیندها و RACI
R: Streaming Platform (اطلاعات/نسخه ها)، تجزیه و تحلیل دامنه (قوانین/ویژگی ها)، MLOps (امتیاز دهی/فروشگاه ویژگی).
A: رئیس داده/ریسک/انطباق توسط دامنه.
C: DPO/Legal (PII/احتباس)، SRE (SLO/حوادث)، معماری.
I: محصول، پشتیبانی، بازاریابی، مالی.
14) نقشه راه پیاده سازی
MVP (2-4 هفته):1. Kafka/Redpanda + 2 موضوعات مهم (به عنوان مثال، «پرداخت»، «auth»).
2. کار flink با علامت، deduplication و 1 قانون CEP (AML یا RG).
3. ویترین عملیاتی در داشبورد ClickHouse/Pinot (1-5 دقیقه)، تاخیر/کامل بودن.
4. کانال حادثه (webhooks/Jira)، SLO های اساسی و هشدارها.
مرحله 2 (4-8 هفته):- غنی سازی آنلاین (Redis/Scylla)، فروشگاه ویژگی، جستجوی ناهمزمان.
- مدیریت قوانین به عنوان کد، canary/A-B، جریان DQ.
- منطقه بندی نوار نقاله، روش DSAR/RTBF، برگزاری حقوقی برای موارد.
- چند منطقه فعال فعال، پخش و چه اگر شبیه ساز، کالیبراسیون خودکار آستانه.
- فروشگاه های جریان طلا (GGR/RG/AML)، گزارش نزدیک به زمان واقعی.
- داشبورد هزینه، بازپرداخت، تمرین DR.
15) نمونه ها (قطعات)
فلینک 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
جریان کافکا - فیلتر idemotent:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
16) چک لیست پیش فروش
- طرح ها/قراردادها در رجیستری، آزمون های برگشتی سبز هستند.
- شامل علامت سفید/اجازه تاخیر، dedup و DLQ.
- پیکربندی SLO و هشدار (تاخیر/اواخر/dup/اندازه دولت).
- غنی سازی با انبارها و زمان ؛ بازگشت «ناشناخته»
- RBAC/کنترل دوگانه در قوانین/مدل ؛ تغییر ورود به سیستم را فعال کنید.
- مستند سازی قوانین/پنجره های فروشگاه ؛ runbook 'و پخش/بازگشت.
17) اشتباهات مکرر و چگونگی اجتناب از آنها
نادیده گرفتن زمان رویداد: بدون علامت، معیارهای «شناور».
بدون deduplication: هشدار نادرست، شمارش دو برابر.
کلید های داغ: اعوجاج احزاب → شور/resarding.
API های جلویی همزمان در مسیر داغ: فقط async + cache.
هزینه مدیریت نشده: قبل از تجمع، TTL ایالات، سهمیه، نظارت بر هزینه.
بدون شبیه ساز: برنامه ریزی بدون پخش → رگرسیون.
18) خط پایین
تجزیه و تحلیل در زمان واقعی «سریع BI» نیست، بلکه یک مدار مدیریت شده با قراردادها، منطق stateful، CEP، علامت ها، غنی سازی آنلاین و SLO های دقیق است. با پیروی از این شیوه ها، پلت فرم سیگنال ها و تصمیمات دقیق را در عرض چند ثانیه دریافت می کند، حفظ انطباق، سناریوهای محصول و انعطاف پذیری عملیاتی با هزینه کنترل شده.