GH GambleHub

批處理數據

1)目的和價值

Batch流水線形成可靠的每日/每小時店面,用於:
  • 監管和財務報告(GGR/NGR,稅收,RG/AML註冊表)。
  • BI和產品分析師(隊列,LTV,轉換漏鬥)。
  • 精度對比(OLTP↔DWH,提供商/PSP),歷史化(SCD)。
  • 為ML準備菲奇和訓練包。

關鍵屬性:可預測性、完整性、可重復性、每單位數據成本低。

2)體系結構(參考)

1.Ingest(原始捕獲):HTTP/gRPC,OLTP的CDC,Bronze →的上載提供商。

2.Lakehouse: Bronze (raw, append-only) → Silver (clean/conform) → Gold (serve).

3.編排:Airflow/Dagster/Prefect(DAG'i,成癮,retrai,SLA)。
4.處理:Spark/Trino/DBT/SQL引擎;派對和ACID格式(Delta/Iceberg/Hudi)。
5.DQ和合同:計劃註冊,DQ規則(YAML/SQL),消費者測試。
6.伺服器:BI/語義層,報告導出(CSV/PDF/JSON+hash),API/GraphQL。
7.可觀察性:piplines,lineage,logi,成本(cost/GB,cost/query)度量。

3)頻率和SLA

每日(D+1至06:00 lock)*GGR報告,監管卸載,對賬。
每小時/準現實:Ops/Financial的操作面板。
每周/每月:精煉、模型和逆轉錄過程。

推薦的SLO:
  • 黃金每日店面準備就緒,直到當地時間06:00。
  • Freshness Silver p95 ≤ 15分鐘,用於日間微蝙蝠/≤ 2小時。
  • Completeness ≥ 99.5%,Validity(方案)≥ 99。9%.

4)增量下載和CDC

方法:
  • CDC(更改數據捕獲):Debezium/log復制→ Bronze → Silver中的填充物。
  • Watermark按時間:'updated_at> max_loaded_ts'。
  • 哈希比較:「md5(row)」用於更改檢測。
  • Upsert/Merge: Silver/Gold等效更新。
MERGE示例(Delta/Iceberg):
sql
MERGE INTO silver. payments AS s
USING staging. payments_delta AS d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

5) SCD(測量歷史)

SCD I:重寫(拼寫、次要修補程序)。
SCD II:全功能歷史(「valid_from/valid_to/is_current」)。
SCD III:簡要比較的「之前/之後」。

SCD II(示例):
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. country <> u. country OR t. rg_status <> u. rg_status)
THEN UPDATE SET t. is_current = FALSE, t. valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED
THEN INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);

6) Backfill и Reprocessing

Backfill:主要填充/歷史填充。
Reprocessing:在編輯邏輯/修復數據後重新計算店面。

原則:
  • 相等性(MERGE/upsert),青銅不變性,邏輯轉換。
  • 重復運行的時間旅行;元數據快照。
  • Guardrails:限制範圍、配額和競爭性喬布斯。
  • 文檔:包含步驟和完成標準的運行手冊。

7)圖層建模

Bronze:

僅適用於「event_date」,「jurisdiction」,「tenant」的部分。
我們保留原始的payload(用於forenzika),並固定「ingested_at」。

Silver:

規範化和標準化:FK/參考書,dedup,FX/時間段。
事實/測量表(3NF/BCNF),用於關鍵測量的SCD。

Gold:

BI/監管機構/財務,準備就緒的SLA之下的非正規店面。
聚合物實現;不可變導出工件(hash+WORM)。

8)數據質量(DQ代碼)

Silver的YAML規則示例:
yaml table: silver. payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: unique_tx type: unique columns: [transaction_id]
severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical

反應策略:critical → fail job+DLQ;major/minor →標記+報告。

9)語義層和報告

在Semantic layer/metrics商店中統一度量定義(GGR/NGR,ARPPU,Retention)。
測試指標;與BI/出口套件的集成。
報告:CSV/JSON/PDF+sha 256,上載日誌和法律保留。

10)隱私,居住,安全

PII最小化:用戶化名;mapping-在單獨的保護環中。
數據駐留:EEA/UK/BR上的單獨目錄/密鑰;禁止在沒有法律依據的情況下進行跨區域合作。
加密:transit中TLS;KMS/CMK at-rest;出口管制。
DSAR/RTBF:可計算的投影,選擇性編輯;可用性審核。
法律保留:用於監管工件的WORM檔案。

11)性能和成本

按日期/市場/特南特分期付款;Z-order/cluster按頻繁謂詞排列。
格式:Parquet+ACID表;壓縮/統計,OPTIMIZE/VACUUM。
實現:黃金穩定聚集;避免「整體」喬布斯。
配額/預算:按團隊分列的chargeback;後退限制/繁重查詢。
計劃:低負荷窗口(夜間/周末),隊列優先級。

12)可觀察性和控制

Piplines度量標準:持續時間,成功率,retries, rows processed, cost/query。
DQ度量標準:完整性,validity, uniqueness, FK錯誤,漂移。
Freshness heatmap:按領域和市場;SLA-dashbords。
線性:從青銅到報告的起源;變更前的影響分析。
Alerts: SLO預算、DQ降級、延遲、成本上升。

13) SQL/模型示例

貨幣正常化(Silver):
sql
CREATE OR REPLACE TABLE silver. payments AS
SELECT p. transaction_id,
p. user_pseudo_id,
p. currency,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
p. market,
CAST(p. event_time AS TIMESTAMP) AS event_time
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time)
AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';
GGR(黃金)每日展示:
sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
b. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS 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;
完整性控制(DQ SQL):
sql
SELECT market, event_date, COUNT() AS n
FROM silver. fact_bets
GROUP BY market, DATE(event_time) AS event_date
HAVING n = 0;

14)流程和RACI

R(響應):數據工程(DAG'i,Silver/Gold模型),數據平臺(infra,電路寄存器,DQ)。

A (Accountable): Head of Data / Chief Data Officer.

C (Consulted): Compliance/Legal/DPO (PII/retention), Finance (FX/GGR), Risk (RG/AML), SRE (SLO/стоимость).

I (Informed): BI/產品/營銷/運營。

15)實施路線圖

MVP(4-6周):

1.Lakehouse Bronze/Silver(ACID格式),CDC/2-3域的增量。

2.DQ代碼:Payments/Gameplay+CI驗證的10-15規則。

3.從SLA到06:00的第一個黃金展示(GGR Daily);報告export+hash。

4.Freshness/Completeness/Cost Dashbords,基本的Alertes。

第二階段(6至12周):
  • SCD II для users/games/providers;域擴展。
  • 語義層度量;與OLTP/提供商進行對賬(accuracy)。
  • Backfill/reprocessing,lineage和impact分析,區域化(EEA/UK)程序。
第三階段(12周以上):
  • 更改的自動仿真(dry-run),預算/配額,chargeback。
  • 自動文檔(數據產品頁)、DR練習和時間旅行恢復。
  • 價值優化(聚類,實現,TTL,真空)。

16)售前支票清單

  • Registry中的合同和計劃,兼容性測試是綠色的。
  • 增量下載/CDC正在運行,MERGE是偶數。
  • DQ規則是活躍的;critical → fail + DLQ;違規報告。
  • SLA/dashboard新鮮/完整;Alertes設置。
  • PII/DSAR/RTBF/法律保留政策已得到法律/DPO的確認。
  • Runbook'和backfill/reprocessing/DR測試。
  • 控制成本(成本/查詢、成本/GB、量)。

17)反模式以及如何避免

整體夜間喬巴:分成獨立步驟,按批次平行。
Full reload不需要:使用increment/CDC/mergies。
在分析中混合PII:保持貼片分開,應用CLS/RLS。
缺少DQ/lineage:輸入DQ代碼並跟蹤來源。
「手動」背景:自動化和記錄,限制範圍。
非管理成本:聚類,實現,重建策略。

18)詞匯表(簡短)

CDC-捕獲來自OLTP的更改。
SCD-緩慢變化的測量(I/II/III)。
Lakehouse是數據湖+ACID表。
MERGE/Upsert-等效更新操作。
時間旅行-閱讀表格的歷史版本。
WORM是不可變的工件存儲。

19)結果

批處理是可預測,可復制和兼容流水線的學科。遵循計劃第一,增量/CDC,SCD歷史,DQ編碼,可觀察性和有意識的經濟學原則,您將獲得穩定的黃金店面和報告,並隨時進行核對並準備審核。

Contact

與我們聯繫

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

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

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

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