來自不同來源的數據合並
來自不同來源的數據合並
數據融合是將異構流(產品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的可靠展示和可持續指標。