GH GambleHub

數據質量控制

1)任命和原則

為什麼:可靠的報告(GGR/稅收),防凍和RG模型,合規卸載,產品和個性化。

原則:
  • Schema-first&Contracts:所有來源都必須公布合同數據。
  • DQ代碼:存儲庫中的規則、版本、測試和評論。
  • 觀察默認值:度量/邏輯/線性。
  • 按設計保密:最低PII,掩碼和RLS/CLS。
  • Cost-aware:優先考慮關鍵規則,智能樣本。

2)質量測量分類法

完整性(Full)-必填字段/字符串的比例。
Validity(有效性):符合類型/範圍/參考。
Uniqueness(唯一性):沒有重復鍵/事件。
一致性:參考完整性,業務不變性。
Accuracy(精度):逼近「真實」源(摘要對賬)。
Timeliness/Freshness(及時性):材料延遲。
Lineage Integrity:保存轉換的起源/版本。

對於每個域,都定義了KPI的質量和關鍵性(臨界/專業/次要)。

3)合同和計劃(真相來源)

數據合同:JSON Schema/Avro/OpenAPI/AsyncAPI,位於Registry中。
穩定性:反向兼容的更改-添加無效;破解-新版本+雙重記錄。
可跟蹤性:在事件中-「event_id」,「trace_id」,「schema_version」,「source」。

4) DQ代碼: 工件結構

將規則與piplines一起存儲在Git中:

/dq/
rules/
silver. payments. yaml gold. ggr_daily. yaml checks/
sql/
python/
policies/
severities. yaml notifications/
routes. yaml

規則: 聲明性YAML/SQL;

嚴重性: 映射→警報通道/升級級別;

CI:電路linter,兼容性測試,「dry-run「/模擬器。

5)規則示例(YAML)

yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive severity: critical type: range column: amount min: 0. 01
- name: currency_in_whitelist severity: major type: in_set column: currency set: [EUR, USD, GBP, TRY, BRL]
- name: unique_tx severity: critical type: unique columns: [transaction_id]
- name: fk_user_exists severity: critical type: foreign_key column: user_pseudo_id ref_table: dim. users ref_column: user_pseudo_id
- name: ts_monotonicity severity: minor type: temporal expression: "ts between date_sub(now(), interval 90 day) and now()"

6) SQL測試(樣本)

鑰匙的獨特性

sql
SELECT transaction_id, COUNT() AS c
FROM silver. payments
GROUP BY transaction_id
HAVING COUNT() > 1;

強制字段的完整性

sql
SELECT COUNT() AS nulls
FROM silver. payments
WHERE amount IS NULL OR currency IS NULL OR ts IS NULL;

參考資料/一致性

sql
SELECT p. currency
FROM silver. payments p
LEFT JOIN ref. currencies r ON p. currency = r. code
WHERE r. code IS NULL;

7)流DQ(實時)

Ingest驗證:計劃驗證,尺寸限制,類型和enum's。
流式檢查:dedup「(event_id,source)」,allowed lateness,貨幣/金額的有效性。
邊界:嚴重錯誤→ DLQ+警報;不是關鍵的標簽→,而是跳過(帶有「dq_flag」標誌)。
度量標準:按批次列出completeness/lag/dup-rate。

8)處理錯誤和例外

DLQ/Quarantine:「病態」記錄被保留,可供修復。
Exception records:排除卡(所有者、期限、原因、區域)。
自動倒退:使用最後一個正確的店面快照。
關閉SLA:關鍵-≤ 24-48小時;主要是≤ 5個奴隸。天。

9)與隱私和合規性保持一致

PII最小化:不要在分析層中檢查「原始」PII;應用別名。
RLS/CLS:檢查是在考慮字段掩蔽的情況下進行的。
區域化:規則考慮到「司法」(EEA/UK/BR)。
法律保留:禁止重新錄制檔案作為保留的一部分。

10)可觀察性,SLI/SLO和Alerta

推薦的SLI/SLO:
  • Freshness p95(Silver):≤ 15分鐘。
  • Completeness (critical types): ≥ 99.5%.
  • Validity (schema): ≥ 99.9%.
  • Duplicate rate: ≤ 0.1%.
  • DQ incident MTTR: ≤ 24–48 ч.

Alerta:嚴重性路由(pager for critical)、平滑化(alerta)、「維護視窗」。

11) Dashbords(最低設置)

按領域和市場劃分的Freshness/Completeness熱卡。
按事件數量和修復費用排在前N位。
漏鬥DQ: ingest → silver → gold(損失/修復)。
用於關鍵報告(調節/GGR/RG/AML)的線卡。
「舊式」電路和客戶端映射(SDK/電路版本)。

12)流程和RACI

R(響應):數據工程(每個表的規則),域所有者(語義)。

A (Accountable): Head of Data/CDO.

C(咨詢):合規/法律/DPO,體系結構,SRE。
I (Informed): BI/產品/營銷/財務/運營。

規則生命周期:咆哮→句子→「黑暗啟動」→包含→監控→回顧。

13)核對和精度(Accuracy)

校驗金額/交易:與OLTP/提供商(PSP/KYC)合並。
兩環比較:用於選擇性驗證的獨立管道。

公差: 按度量劃分的百分比閾值(例如GGR ≤ 0的差異。2%).

日常行為: 備審報告.

14)成本和優先級

更頻繁地運行關鍵規則(流/小時),次要規則是每日規則。
對重型表使用樣本和材料化檢查。
跟蹤成本/查詢和成本/GB,應用聚類/索引。
在命令切口(chargeback)中分配DQ預算。

15)金色店面模板(例如GGR Daily)

yaml table: gold. ggr_daily owner: fin-analytics slo:
ready_by_local_time: "06:00"
rules:
- name: ggr_not_negative severity: critical type: range column: ggr min: 0. 0
- name: market_known severity: major type: in_set column: market set_ref: ref. markets
- name: fx_source_present severity: major type: not_null column: fx_source
- name: completeness_by_market severity: critical type: completeness partition_keys: [event_date, market]
expected_rows_expression: "ref. expected_activity(event_date, market)"

16)質量事件: 管理和溝通

Ticketing:用附加的樣本和指標自動創建任務。
通用模板:在受到影響時通知產品所有者/監管者。
Mortem後:根原因(schema drift, upstream bug,負載),CAPA操作,「回歸返回」控制。

17)實施路線圖

MVP(2-4周):

1.關鍵表目錄(Payments,Gameplay,GGR,Compliance)。

2.YAML規則,用於10-15個關鍵檢查+CI驗證。

3.Dashboard Freshness/Completeness和Alerta用於批判。

4.DLQ/Quarantine+修補程序運行手冊。

第二階段(4-8周):
  • 規則擴展(FK/accuracy),「dry-run」模擬器,A/B包含。
  • 與lineage,例外安排和SLA集成。
  • 在ingest上流式傳輸DQ,用於「嘈雜」源。
第三階段(8至12周):
  • 自動生成規則文檔,成本度量。
  • 「控制輪廓」(獨立重構),每周回顧展。
  • Rule-as-Code平臺SDK,標準域檢查註冊表。

18)售前支票清單

  • Registry的合同和計劃,兼容性測試正在進行中。
  • YAML規則被清除,severity/上報被分配。
  • Dashbords和Alertes是活躍的;確定並商定了SLO。
  • DLQ/Quarantine可用,runbooks已記錄。
  • 相互抵觸的例外/行為程序已與Legal/Compliance協調。
  • 檢查費用測量和嚴重查詢限額。

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

原始數據沒有合同:輸入計劃第一和消費者測試。
手動檢查:翻譯成DQ代碼和CI。
沒有優先級:共享臨界/大調/小調和差速器通道。
缺少DLQ:沒有什麼可以處理錯誤-添加隔離。
忽略成本:分析查詢,使用實例化。
沒有後驗屍:錯誤重復-引入CAPA和回歸控制。

20)結果

數據質量控制系統不是一組不同的檢查,而是托管程序:合同和計劃,DQ編碼,可觀察性和SLO,事件紀律和交換。根據這篇文章,您將獲得可復制,可驗證且經濟高效的數據,足以用於監管報告,產品解決方案和實時風險檢測器。

Contact

與我們聯繫

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

Telegram
@Gamble_GC
開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

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

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