GH GambleHub

来自不同来源的数据合并

来自不同来源的数据合并

数据融合是将异构流(产品DB,CRM,支付提供商,事件日志和第三方注册表)组合成整体实体和一致性店面的过程。目的是获得"金唱片"(Golden Record)和用于分析,ML和运营案例的统一切口。

1)示范设想方桉和目标

实体360°:客户/玩家,设备,支付工具,商人。
交易整合:多个PSP/结帐 →具有强制性等效性的单一日志。
事件正常化:Web/mobile/backend logi →一个事件词典。
丰富:外部目录(地理,FX,AML/制裁,营销来源)。
统一度量标准:货币/时间区、电路和编码匹配。

2)来源和计划合同

开始之前-每个源的数据合同:
  • 图:字段、类型、零值、键(和)、值域。
  • 语义:每个字段(字典)的含义。
  • SLA:新鲜/频率,最大延迟和订单外。
  • 演变:方案更改策略(backward/forward),deprecation。
  • 质量:按键唯一性、有效范围、参考完整性。

3)识别: 密钥和匹配(记录链接)

3.1.硬标识符

自然键:'user_id','transaction_id','device_id','iban'。
代理密钥:电子邮件/电话(标准化:寄存器,空格,国家代码)。
在没有通用密钥的情况下,在中心表中表示"surrogate_id"。

3.2.软匹配规则

确定性:归一化电子邮件+DR的精确匹配;"家庭"/"暴民"电话→ E.164。
概率(fazzy):名称/地址为Jaro-Winkler/Levenshtein,字符串为TF-IDF/embeddings,粗略哈希/前缀为"锁定"(阻塞)以加速。
图形方法:实体为节点,重合为边缘;聚类连通性组件。
"步进"策略:从严格到宽松的规则,手动咆哮"在边境"。

3.3.整合规则(生存)

当存在值冲突时,源优先级为"KYC注册表>CRM> logi"。
新鲜度:新的时间戳获胜(经有效性调整)。
占用:prefer non-NULL;地址/标签合并为集合。
审计:保留"解决方桉足迹"-覆盖的内容和原因。

4)重复数据消除和MDM

MDM层(Master Data Management):"主实体"+"istochnik→master"链接表。
金唱片:带有"confidence"字段/真相来源的汇总唱片。
历史:SCD类型2用于时间相关属性(地址,KYC状态)。
身份:具有"合并"/"熔化"日期的商品表(merge map)。

5)更改流: CDC,延迟和重复

CDC (Change Data Capture): события `insert/update/delete` + `source_lsn`/offset.

迟到的事件:水印(水标)和等待窗口(grace period),后期更新存储以进行调整。
按顺序排序:按键排序,时间补偿升级。
重复:等效密钥("event_id","idempotency_key"),在窗口中。
Exactly once: 事务单曲/stor, "MERGE"具有确定性逻辑。

6)时间,货币和日历

时间:存储在UTC+本地化切口;显式存储"ingested_at"和"event_time"。
货币:保留"原始货币"和标准化的"base_ccy",其汇率为交易日。
日历:按地区划分的假期/工作日表,以进行诚实的比较。

7)用于合并的伪SQL(upsert/merge)

7.1.交易(偶数日志)

sql
MERGE INTO fact_transactions t
USING staging_transactions s
ON t. txn_id = s. txn_id
WHEN MATCHED AND s. updated_at > t. updated_at THEN
UPDATE SET amount = s. amount,
currency = s. currency,
status = s. status,
updated_at = s. updated_at
WHEN NOT MATCHED THEN
INSERT (txn_id, user_ext_id, amount, currency, status, event_time, updated_at)
VALUES (s. txn_id, s. user_ext_id, s. amount, s. currency, s. status, s. event_time, s. updated_at);

7.2.用户的"黄金记录"(来源优先级+新鲜度)

sql
WITH ranked AS (
SELECT s. ext_user_id,
s. norm_email,
s. phone_e164,
s. addr_struct,
s. source,
s. updated_at,
ROW_NUMBER() OVER (
PARTITION BY s. ext_user_id
ORDER BY
CASE s. source
WHEN 'KYC' THEN 1 WHEN 'CRM' THEN 2 ELSE 3 END,
s. updated_at DESC
) AS rn
FROM staging_users s
)
MERGE INTO dim_user_golden g
USING ranked r
ON g. ext_user_id = r. ext_user_id
WHEN MATCHED AND r. rn = 1 THEN
UPDATE SET email = COALESCE(r. norm_email, g. email),
phone = COALESCE(r. phone_e164, g. phone),
address = COALESCE(r. addr_struct, g. address),
source_of_truth = r. source,
updated_at = r. updated_at
WHEN NOT MATCHED AND r. rn = 1 THEN
INSERT (ext_user_id, email, phone, address, source_of_truth, updated_at)
VALUES (r. ext_user_id, r. norm_email, r. phone_e164, r. addr_struct, r. source, r. updated_at);

8)质量与测试

方案测试:强制性字段,类型,域。
逻辑测试:键的唯一性,没有重复,没有时间倒退。
对账(重新计算):根据来源vs最终展示的金额;差异→字幕。
分析:分布、NULL比例、"长尾巴"。
合并度量:precision/Recall映射,"CONFLICT"的份额,具有一致性的条目的百分比≥阈值。

9)可观察性和SLO

SLO新鲜度:一阵陈列柜≤ N分钟/小时;监控延迟和backlog。
Alerts:复制增长、冲突激增、密钥覆盖率下降。
Logi lineage:从哪个来源获取字段,何时以及由谁覆盖。
Runibuki:事件情景(迟到的批次,CDC风暴,错误的FX)。

10)安全,隐私,合规性

PII:别名,标识符哈希,屏蔽BI。
RLS/CLS:按角色和字符串访问;导出-带有令牌和有效期。
数据寿命:保留时间表;删除权(DSAR)和"法律保留"。
反连接(re-Identification):将敏感表的joins最小化的规则。

11)模型和数据组织

图层:"raw"(原样)→ "staging"(清理/正常化)→ "core"(主实体,事实/测量)→ "marts"(分析/ML下的店面)。
SCD:属性类型2,类型类型1-纠正错误;显式的"valid_from/valid_to"。
功能商店:转换功能与在线/离线相同;定时正确性。

12)实现模式

具有语义层的ELT:合并逻辑是声明性的(规则,优先级,键)。
Stream+microbatch:对于近实时店面-1-15 min microbatchi with watermarks。
图形链接:用于复杂识别(devays,地图,地址)的单独图集。
步进验证:在阴影模式下包含新的链接规则,收集准确性指标。

13)合并路径发布前的支票清单

  • 签订了来源合同;图和字段字典是一致的
  • 已定义链接/规则;有一个重复数据消除策略
  • 确定了生存规则和来源优先次序;审计日志已启用
  • CDC/等效性/后期数据处理实现
  • 货币/时区/日历标准化
  • 定制质量测试和验证;可观察性达什板是
  • 记录了新鲜度和可用性的SLO;Alerta和Runibucs准备就绪
  • PII/出入/存储符合合规要求
  • 文档:实体护照,线路图,查询示例

14)"黄金记录"护照(模板)

本质: "USER_GOLDEN"

密钥: 'user_master_id' (surrogate), mappings 'source_user_id[]'

字段和规则:
  • "电子邮件":正常化+优先级'KYC> CRM> LOGS'
  • "电话":E.164正常化,通过验证拆分
  • `name`: Jaro-Winkler ≥ 0.92, fallback-"KYC"来源"
  • 'address':复合对象;结合+新鲜度优先级
  • 历史:SCD2("valid_from/valid_to")
  • Lineage:捐赠领域参考列表
  • 质量:coverage≥98%,dublikaty≤0。3%
  • SLO:新鲜≤ 1小时,可用性≥ 99。9%
  • 所有者:数据平台,KYC/AML
  • 风险:名称冲突、"家庭"电话、共享设备

15)结果和建议

合并不仅是"JOIN按键",而且是轮廓:来源合同 识别和去除 优先级和CDC的"黄金记录" 以及迟到的质量和可观察性 安全性和更改历史。
透明地构建规则,存储每个解决方桉的审核,支持SCD和exactly-once。因此,来自数十个来源的数据正在转化为产品、分析师和ML的可靠展示和可持续指标。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

Telegram
@Gamble_GC
开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

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