GH GambleHub

تجزیه و تحلیل در زمان واقعی

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 با تاخیر قوی.

مثال Flink SQL (سرعت سپرده 10 دقیقه):
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.

کد شبه CEP:
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، آخرین رویدادها).

مثال 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) معیارها، 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:
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، برگزاری حقوقی برای موارد.
مرحله 3 (8-12 هفته):
  • چند منطقه فعال فعال، پخش و چه اگر شبیه ساز، کالیبراسیون خودکار آستانه.
  • فروشگاه های جریان طلا (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 های دقیق است. با پیروی از این شیوه ها، پلت فرم سیگنال ها و تصمیمات دقیق را در عرض چند ثانیه دریافت می کند، حفظ انطباق، سناریوهای محصول و انعطاف پذیری عملیاتی با هزینه کنترل شده.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.