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,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

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