GH GambleHub

實時分析

1)目的和業務價值

實時分析(RTA)提供每秒而不是時鐘的響應:
  • AML/Antifrod:存款結構,velocity攻擊,風險交易。
  • Responsible Gaming (RG):超越限制、風險模式、自我體驗。
  • SRE/操作:及早檢測SLA降解、錯誤爆發、群集過熱。
  • 產品和營銷:個性化觸發器,任務/任務,實時分割.
  • 運營報告:近實時GGR/NGR,大廳/提供商的行車記錄板。

目標基準: p95端對端0。5–5 с, completeness ≥ 99.5%,可用性≥ 99。9%.


2)參考體系結構

1.Ingest/Edge — `/events/batch` (HTTP/2/3), gRPC, OTel Collector;電路驗證,反配對,地理路由。
2.事件總線-Kafka/Redpanda(通過「user_id/tenant/market」,DLQ,3-7天的續集)。
3.流處理-Flink/Spark Structured Streaming/Beam:靜態操作員,CEP, watermarks, allowed lateness, dedup。
4.在線豐富-Redis/Scylla/ClickHouse lookups(RG限制,KYC,BIN→MCC,IP→Geo/ASN),帶有計時器的異步調用和後退。
5.Serving-ClickHouse/Pinot/Druid(1-5分鐘的操作展示),Feature Store(在線標誌),webhooks/ticketing/SOAR。
6.Lakehouse-青銅/Silver/黃金,用於長期固定,回放和焊接。
7.可觀察性-piplines,tracing(OTel),logi,lineage和cost-dashbords的度量。


3)信號和分類法

付款: '付款。deposit/withdraw/chargeback`.

遊戲:"遊戲。bet/payout",會議。

身份驗證和行為: 'auth。login/failure`, device-switch, velocity.

操作:latency, error-rate,重新啟動pods, aturation。
合規性:制裁篩查,RG標誌,DSAR事件。

每種類型都有所有者(域所有者),電路,SLO新鮮度和長期數據策略。


4)窗口、水廠和長期數據

窗口:tumbling (fix.),hopping(重疊),session(非活動性)。
Watermark:「時間知識」邊界(通常為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','payment。account_id`.

狀態:滑動計數器/總和,用於重復數據消除的bloom過濾器,TTL。
CEP模式:結構(<閾值,每窗口T ≥N次),設備開關,RG-fatigue。

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)Exactly-Once,順序和冪等

TTL 24-72小時內通過處理上的「event_id」在總線+後端進行一次交付。
順序:按鍵分組(保證本地順序)。
Sink:事務性命題(2階段)或idempotent upsert/merge。
Outbox/Inbox:從OLTP對域事件進行事務性發布。


7)在線豐富和功能商店

Lookup:事件發生時的RG限制,KYC狀態,BIN→MCC,IP→Geo/ASN,市場/稅收,FX。
異步調用:具有計時器的制裁/RER API;錯誤時為「unknown」+retray/緩存。
功能商店:在線/離線約定;一個轉換代碼庫。


8)實時店面和伺服器

ClickHouse/Pinot/Druid:秒/分鐘單元,材料化視圖,SLA延遲1-5分鐘。
API/GraphQL:dashbords/widgets的低潛伏期。
Alerts:具有豐富上下文的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和dashbords

推薦的SLI/SLO:
  • p95 ingest→alert ≤ 2 c(關鍵規則),≤ 5 c(其他)。
  • T ≥ 99窗口的完整性。5%;Schema validity ≥ 99.9%;Trace coverage ≥ 98%.
  • 流服務的可用性≥ 99。9%;late-ratio ≤ 1%.
Dashbords(最低):
  • 按政黨/斧頭劃分;運營商忙碌的時間;狀態大小。
  • 漏鬥「sobytiye→pravilo→keys」,通過域進行精制/回收。
  • 晚期/完整熱卡;熱線鑰匙卡。

10)流DQ(質量)

Ingest驗證:schema/enums/size-limits,anti-Dubly。
在線程上:completeness/dup-rate/late-ratio,窗口正確性(不重復考慮)。
反應策略:critical → DLQ+pager;專業/小調→標記+報告。

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/Keys:避免熱鍵(salting/Composite),聚會平衡。
狀態:TTL,緊湊型快照,RocksDB調音/狀態後端。

預聚: reduce在早期階段為嘈雜的主題.

采樣:僅適用於非關鍵指標(非事務/合規性)。
Chargeback:主題/喬巴預算、繼電器配額和繁重查詢。


13)流程和RACI

R:流媒體平臺(infra/發行版),域分析(規則/fici),MLOps(計分/功能商店)。
答:按域分列的數據頭/風險/合規性。
C:DPO/法律(PII/Retention),SRE(SLO/事件),體系結構。

I: 產品,支持,營銷,財務.


14)實施路線圖

MVP(2-4周):

1.Kafka/Redpanda+2關鍵拓撲(例如「payments」,「auth」)。

2.帶有水廠、重復數據消除和1個CEP規則(AML或RG)的Flink-joba。

3.ClickHouse/Pinot(1-5分鐘)的操作展示,lag/completeness行車記錄儀。

4.事件頻道(webhooks/Jira),基本的SLO和Alerta。

第二階段(4-8周):
  • 在線豐富(Redis/Scylla),功能商店,異步外觀。
  • 將規則作為代碼,canary/A-B,流DQ進行管理。
  • 流水線區域化,DSAR/RTBF程序,法律案件保留。
第三階段(8至12周):
  • 多區域活動,「replay&what-if」模擬器,自動閾值校準。
  • 金流店面(GGR/RG/AML),近實時報告。
  • Cost-dashbords,chargeback,DR教學。

15)示例(片段)

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);
}

16)售前支票清單

  • Registry中的計劃/合同,背對背測試是綠色的。
  • 包括watermark/allowed lateness、dedup和DLQ。
  • 配置了SLO和Alerta (lag/late/dup/state size)。
  • 通過緩存和時間表豐富;fallback «unknown».
  • RBAC/雙控制規則/模型;已啟用更改日誌。
  • 規則文件/店面;runbook'和反射/回滾。

17)頻繁的錯誤以及如何避免錯誤

忽略事件時間:沒有水上標記「漂浮」。
沒有重復數據消除:錯誤的alerta,雙重計數。
熱鍵:傾斜批次→ salting/resharding。
同步外部API熱路:只有async+緩存。
非管理成本:預聚、TTL狀態、配額、成本監控。
缺少模擬器:在沒有「重播」→回歸的情況下退出。


18)結果

實時分析不是「快速BI」,而是具有合同,狀態邏輯,CEP,水上市場,在線豐富和嚴格SLO的托管輪廓。遵循這些做法,該平臺在秒內獲得準確的信號和解決方案,以可控的成本支持合規性,產品場景和運營可持續性。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。