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,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。