Müxtəlif mənbələrdən məlumatların birləşməsi
Müxtəlif mənbələrdən məlumatların birləşməsi
Məlumatların birləşməsi müxtəlif axınların (məhsulların DB, CRM, ödəniş provayderləri, hadisə qeydləri, üçüncü tərəf reyestrləri) bütöv varlıqlara və konsistent vitrinlərə birləşdirilməsi prosesidir. Məqsəd analitika, ML və əməliyyat halları üçün «qızıl rekord» (Golden Record) və razılaşdırılmış kəsiklər əldə etməkdir.
1) Tipik ssenarilər və məqsədlər
360 ° mahiyyətcə: müştəri/oyunçu, cihaz, ödəniş aləti, satıcı.
Əməliyyatların konsolidasiyası: bir neçə PSP/kassa → məcburi idempotentlik ilə vahid jurnal.
Hadisələrin normallaşdırılması: web/mobile/backend logi → hadisələrin vahid lüğəti.
Zənginləşdirmə: xarici kataloqlar (geo, FX, AML/sanksiyalar, marketinq mənbələri).
Vahid metriklər: valyutaların/taymzonların, sxemlərin və kodların əlaqələndirilməsi.
2) Mənbə müqavilələri və sxemlər
Başlamazdan əvvəl - hər bir mənbə üçün məlumat müqaviləsi:- Sxem: sahələr, tiplər, sıfır, açar (lar), dəyər domenləri.
- Semantika: Hər bir sahə (lüğət) nə deməkdir.
- SLA: təzəlik/tezlik, maksimum gecikmə və out-of-order.
- Təkamül: sxemlərin dəyişdirilməsi siyasəti (backward/forward), deprecation.
- Keyfiyyət: açarların unikallığı, icazə verilən diapazonlar, istinad bütövlüyü.
3) Identifikasiya: açarlar və müqayisə (record linkage)
3. 1. Sərt identifikatorlar
Təbii açarlar: 'user _ id', 'transaction _ id', 'device _ id', 'iban'.
Proxy açarları: e-mail/telefon (normallaşdırma ilə: registr, boşluqlar, ölkə kodları).
Surroqatlar: universal açar olmadıqda hub cədvəllərində 'surrogate _ id'.
3. 2. Yumşaq müqayisə qaydaları
Determinizasiya: normallaşdırılmış e-mail + DR-nin dəqiq üst-üstə düşməsi; «ev «/» mob »telefon → E.164.
Ehtimal (fazzi): Ad/ünvan üçün Jaro-Winkler/Levenshtein, TF-IDF/sətirlər üçün embeddingi, sürətləndirmək üçün kobud hash/prefikslərdə «bloklama» (blocking).
Qrafik yanaşmalar: düyünlər kimi mahiyyətlər, qabırğalar kimi uyğunluqlar; bağlılıq komponenti klasterləşdirilməsi.
«Addım-up» strategiyası: sərt qaydalardan «sərhəddə» əl səsləri ilə yumşaq qaydalara.
3. 3. Konsolidasiya qaydaları (survivorship)
Mənbə prioriteti: dəyər toqquşması olduqda «KYC-reyestr> CRM> log».
Təravət: daha yeni bir zaman nişanı qazanır (etibarlılığa uyğunlaşdırılır).
Doldurulma: prefer non-NULL; çoxluqların birləşməsi ilə ünvanların/etiketlərin birləşməsi.
Audit: «həll izi» saxlayın - nəyi və niyə yenidən yazdınız?
4) Deduplikasiya və MDM
MDM-qat (Master Data Management): masa «master» + rabitə «mənbə → master».
Golden Record: 'confidence '/həqiqət mənbəyi ilə yığılmış giriş.
Tarix: SCD tipi 2 zamandan asılı atributlar üçün (ünvan, KYC statusu).
Kimliklər: «birləşmə «/« tökmə »tarixləri olan merj cədvəlləri (merge map).
5) Dəyişiklik axını: CDC, gecikmiş və təkrarlanan
CDC (Change Data Capture): события `insert/update/delete` + `source_lsn`/offset.
Gecikmiş hadisələr: su işarələri (watermarks) və gözləmə pəncərələri (grace period), gecikmiş yeniləmələrin düzəldilməsi üçün saxlanması.
Out-of-order: yeniləmələri kompensasiya edən açar və vaxt sıralaması.
Dublikatlar: idempotent açarları ('event _ id', 'idempotency _ key'), pəncərədə dedup.
Exactly-once: əməliyyat sings/store, determinated məntiqi ilə «MERGE».
6) Taymzonlar, valyutalar və təqvim
Vaxt: UTC + lokallaşdırılmış kəsiklər saxlamaq; açıq saxlamaq 'ingested _ at' və 'event _ time'.
Valyutalar: Əməliyyat tarixindəki məzənnə ilə «xam valyuta» və normallaşdırılmış «base _ ccy» saxlayın.
Təqvimlər: ədalətli müqayisə üçün bölgələr üzrə tətil/iş günləri cədvəlləri.
7) Birləşmə üçün Psevdo-SQL (upsert/merge)
7. 1. Əməliyyatlar (idempotent jurnalı)
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. «Qızıl giriş» istifadəçi (prioritet mənbə + təravət)
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) Keyfiyyət və test
Sxem testləri: məcburi sahələr, tiplər, domenlər.
Məntiq testləri: açarın unikallığı, dublikatların olmaması, «zamanda geri» yoxdur.
Müqayisələr (reconciliation): mənbə üzrə məbləğlər vs yekun vitrin; uyğunsuzluqlar → biletlər.
Profil: paylama, NULL payı, «uzun quyruqlar».
Birləşmə metrikası: precision/recall müqayisə, «CONFLICT» payı, astana ≥ confidence ilə% qeydlər.
9) Müşahidə və SLO
SLO təravət: lag vitrin ≤ N dəqiqə/saat; gecikmələrin monitorinqi və backlog.
Alertlər: təkrarların böyüməsi, münaqişələrin artması, açarların düşməsi.
Lineage qeydləri: hansı mənbədən sahəni, nə vaxt və kim tərəfindən yenidən yazılmışdır.
Runibuki: hadisə ssenariləri (gec partiyalar, fırtına CDC, səhv FX).
10) Təhlükəsizlik, gizlilik, uyğunluq
PII: psevdonimizasiya, identifikatorların heşləşdirilməsi, BI-də maskalanması.
RLS/CLS: rollar və sətirlər üzrə giriş; ixrac - tokenlər və raf ömrü ilə.
Verilənlərin ömrü: saxlama qrafikləri; silinmə hüququ (DSAR) və «legal hold».
Anti-birləşmə (re-identification): həssas cədvəllərin joyns minimuma endirilməsi qaydaları.
11) Model və məlumatların təşkili
Laylar: 'raw' (olduğu kimi) → 'staging' (təmizləmə/normallaşdırma) → 'core' (mahiyyət, fakt/ölçmə) → 'marts' (analitik vitrinlər/ML).
SCD: atributlar üçün tip 2, səhv düzəltmək üçün tip 1; açıq 'valid _ from/valid _ to'.
Feature Store: Çevirmə funksiyaları onlayn/oflayn olaraq eynidir; point-in-time düzgünlük.
12) Satış nümunələri
Semantik təbəqə ilə ELT: birləşmə məntiqi deklarativ təsvir edilmişdir (qaydalar, prioritetlər, açarlar).
Stream + mikrobatch: near-real-time vitrin üçün - watermarks ilə mikrobatçi 1-15 dəq.
Graph-linkage: mürəkkəb identifikasiya üçün ayrı bir qrafik hub (cihazlar, kartlar, ünvanlar).
Step-up validation: yeni linkage qaydaları shadow rejimində daxil, dəqiqlik metrik yığmaq.
13) Birləşmə konturunun buraxılmasından əvvəl çek siyahısı
- Mənbə müqavilələri imzalanmışdır; sxemlər və sahə lüğətləri razılaşdırılır
- linkage açarları/qaydaları müəyyən; duplikasiya strategiyası var
- Survivorship qaydaları və mənbələrin prioritetləri müəyyən edilmişdir; audit-log daxil
- CDC/idempotentlik/gec data emalı həyata
- Valyutalar/taymzonlar/təqvim normallaşdırılıb
- Keyfiyyət testləri və yoxlamalar özelleştirilmiş; müşahidə panelləri var
- SLO təravət və mövcudluğu qeyd; Alertlər və Runibook hazır
- PII/Access/saxlama uyğunluq tələblərinə cavab verir
- Sənədləşmə: mahiyyət pasportu, lineage sxemi, sorğu nümunələri
14) «Qızıl qeyd» pasportu (şablon)
Mahiyyət: 'USER _ GOLDEN'
Açar: 'user _ master _ id' (surrogate), mappinqlər 'source _ user _ id []'
Sahələr və qaydalar:- 'email': normallaşma + prioritet 'KYC> CRM> LOGS'
- 'phone': E.164 normallaşdırılması, split yoxlama
- `name`: Jaro-Winkler ≥ 0. 92, fallback - mənbə «KYC»
- 'address': kompozit obyekt; birləşmə + təravət prioriteti
- Tarix: SCD2 ('valid _ from/valid _ to')
- Lineage: donor sahələrinin istinad siyahısı
- Keyfiyyət: coverage ≥ 98%, təkrarlanan ≤ 0. 3%
- SLO: təravət ≤ 1 saat, mövcudluq ≥ 99. 9%
- Sahibləri: Data Platform, KYC/AML
- Risklər: ad toqquşmaları, «ailə» telefonları, shared-devices
15) Nəticələr və tövsiyələr
Birləşmə yalnız «açar JOIN» deyil, kontur: mənbələrin müqavilələri → identifikasiya və dedup → prioritetlər və «qızıl qeyd» → CDC və gecikmiş → keyfiyyət və müşahidə → təhlükəsizlik və dəyişiklik tarixi.
Qaydaları şəffaf qurun, hər bir həll auditini saxlayın, SCD və exactly-once-ni dəstəkləyin. Beləliklə, onlarla mənbədən alınan məlumatlar etibarlı vitrinlərə və məhsul, analitiklər və ML üçün davamlı metriklərə çevrilir.