Stream vs Batch分析
1)簡短的精髓
Stream-在幾秒鐘內對事件進行連續處理:antifrod/AML、RG觸發器、SLA-alerta、操作面板。
Batch是具有完整可重復性的定期重新計算:監管報告(GGR/NGR),finswerks,ML-datasets。
地標: Stream p95 e2e 0。5-5秒,Batch D+1到06:00 (lock.).
2)選擇矩陣(TL;DR)
第80/20條規則:在Batch中不需要反應的任何事情<5分鐘;其余的在Stream,與Batch的夜間驗證。
3)體系結構
3.1 Lambda
Stream for online+Batch用於整合。加:靈活性。減:兩個邏輯。
3.2 Kappa
一切都像溪流;Batch=通過日誌進行「倒帶」。另外:一個代碼。減:反射的復雜性/成本。
3.3 Lakehouse-Hybrid(推薦)
流式→操作OLAP 3月(分鐘)和Bronze/Silver;Batch重新包裝黃金(D+1)並發布報告。
4)數據和時間
Stream
窗口:tumbling/hopping/session。
Watermarks:2-5分鐘;後期數據被標記和刪除。
Stateful:CEP,dedup,TTL。
Batch
Increments/CDC:「updated_at」,日誌復制。
SCD I/II/III:屬性的歷史。
Snapshots:「as-of」的白天/月度層。
5)在iGaming中的應用模式
AML/Antifrod:流(velocity/結構)+Batch對賬和案例。
響應遊戲:流極限/自我體驗控制;Batch報告註冊表。
運營/SRE:Stream Alerta SLA;對事件和趨勢進行後期分析。
產品/營銷:流個性化/任務;Batch 隊列/LTV。
財務/報告:Batch (Gold D +1, WORM套件),Stream-操作面板。
6) DQ,可重復性,反射
Stream DQ:方案驗證,dedup「(event_id,source)」,窗口完整性,後期評分,dup-rate;關鍵的DLQ →。
Batch DQ: 唯一性/FK/range/temporal,與OLTP/提供商對賬;關鍵→ fail job+報告。
- Stream:跨越+deterministic變換範圍的拓撲。
- Batch:時間旅行/邏輯版本(「邏輯版本」)+Gold snapshots。
7)隱私和居留權
流:化名,在線掩碼,區域輸送機(EEA/UK/BR),外部PII-lookups的時間表。
Batch:PII映射隔離,RLS/CLS,DSAR/RTBF,法律保留,WORM檔案。
8)成本工程
流:避免「熱鍵」(salting),限制async lookups,TTL狀態,預聚合。
Batch:分組/聚類,小文件壓縮,穩定單元的實現,配額/啟動窗口。
9)示例
9.1 Stream-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);
9.2 Stream-CEP (AML偽代碼)
python if count_deposits(10MIN) >= 3 and sum_deposits(10MIN) > THRESH \
and all(d. amount < REPORTING_LIMIT for d in window):
emit_alert("AML_STRUCTURING", user_id, snapshot())
9.3 Batch-MERGE(銀鑄造)
sql
MERGE INTO silver. payments s
USING stage. delta_payments d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
9.4 Batch — Gold GGR (D+1)
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) event_date,
b. market, g. provider_id,
SUM(b. stake_base) stakes_eur,
SUM(p. amount_base) payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;
10)度量和SLO
流(地標)
p95 ingest→alert ≤ 2–5 c completeness окна ≥ 99.5%
schema-errors ≤ 0.1%
late-ratio ≤ 1%
可用性≥ 99。9%
Batch(地標)
Gold.每日準備到06:00 lock。
completeness ≥ 99.5%
validity ≥ 99.9%
MTTR DQ事件≤ 24-48小時
11)測試和發布
合同/計劃: 消費者駕駛測試;back-compat CI.
流:金絲雀規則,黑暗啟動,重播模擬器。
Batch: dry-run在采樣、指標比較、校驗總和(reconciliation)。
12)反模式
邏輯重復:不同的Stream和Batch計算沒有公式對齊。
在沒有緩存/定時器的Stream熱路徑中同步外部API。
「以防萬一」完全重置而不是增添。
缺少watermarks/late策略。
分析層中的PII;沒有CLS/RLS。
追溯地「變異」的黃金店面。
13)推薦的混合動力(花花公子)
1.流路徑:ingest →總線→ Flink/Beam(watermarks,dedup,CEP)→
OLAP(ClickHouse/Pinot)用於1-5分鐘面板+青銅/銀(append)。
2.Batch回路:increments/CDC → Silver 正常化/SCD →黃金每日店面/報告(WORM)。
3.配對:單個語義層度量;夜間Stream↔Batch對賬;差異>閾值→滴答聲。
14) RACI
R(響應性):流平臺(流輸入),數據工程(Batch模型),域分析(度量/規則),MLOps(fichi/Feature Store)。
A (Accountable): Head of Data / CDO.
C (Consulted): Compliance/Legal/DPO, Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).
I (Informed): BI/產品/營銷/運營。
15)路線圖
MVP(2-4周):1.Kafka/Redpanda+2關鍵拓撲(「payments」,「auth」)。
2.Flink-joba:watermark+dedup+1 CEP規則(AML或RG)。
3.OLAP陳列櫃1-5分鐘+dashboard lag/late/dup。
4.Lakehouse Silver(ACID),第一枚金牌。ggr_daily (D+1至06:00)。
第二階段(4-8周):- 按域,SCD II,語義度量層/CDC。
- 流式DQ和夜間對賬Stream↔Batch。
- 區域化(EEA/UK/BR),DSAR/RTBF,法律保留。
- Replay Simulator,canary/A-B規則/度量版本。
- Cost-dashbords和配額;tiered storage;DR演習。
- 店面/度量和線性文檔的自動生成。
16)實施支票
- Registry的計劃/合同;背對背測試為綠色。
[] Stream: watermarks/allowed-lateness, дедуп, DLQ;銷售中的OLAP面板。
- Batch: increments/CDC、SCD II、Gold D+1 with WORM export。
- 單個語義層度量;夜間核對Stream↔Batch。
- DQ-dashbords Freshness/Completeness/Validity;Alerta lag/late/dup。
- RBAC/ABAC,加密,居住;DSAR/RTBF/Legal Hold.
- 控制成本(成本/GB、成本/查詢、狀態大小、繼電器配額)。
17)結果
Stream和Batch不是競爭對手,而是兩個單一驅動器的齒輪。Stream提供了「這裏和現在」的反應,Batch是「早晨」可驗證的真相。Lakehouse方法混合體,單層度量和DQ/lineage學科,使您可以構建快速,可復制和兼容的分析輪廓,從而實現SLA和成本的最佳化。