GH GambleHub

Farklı kaynaklardan gelen verileri birleştirme

Farklı kaynaklardan gelen verileri birleştirme

Veri birleştirme, heterojen akışların (ürün veritabanları, CRM, ödeme sağlayıcıları, etkinlik günlükleri, üçüncü taraf kayıtları) bütünsel varlıklar ve tutarlı vitrinler halinde birleştirilmesi sürecidir. Amaç, bir Altın Kayıt ve analitik, ML ve operasyonel durumlar için tutarlı kesintiler elde etmektir.

1) Tipik senaryolar ve hedefler

Özünde 360 °: müşteri/oyuncu, cihaz, ödeme aracı, tüccar.
İşlem konsolidasyonu: Birden fazla PSP/yazar kasa - zorunlu idempotency ile tek bir günlük.
Olay normalleştirme: web/mobil/arka uç günlükleri - tek bir olay sözlüğü.
Zenginleştirme: dış dizinler (geo, FX, AML/yaptırımlar, pazarlama kaynakları).
Birleşik metrikler: Para birimlerinin/zaman dilimlerinin, şemaların ve kodlamaların koordinasyonu.

2) Kaynak sözleşmeleri ve planları

Başlamadan önce - her kaynak için veri sözleşmesi:
  • Şema: alanlar, türler, hükümsüzlük, anahtar (lar), değer etki alanları.
  • Semantik: Her alanın (sözlük) ne anlama geldiği.
  • SLA: Tazelik/frekans, maksimum gecikme ve sıra dışı.
  • Evrim: şema değiştirme politikası (geri/ileri), depresyon.
  • Kalite: anahtarların benzersizliği, kabul edilebilir aralıklar, referans bütünlüğü.

3) Tanımlama: anahtarlar ve haritalama (kayıt bağlantısı)

3. 1. Sabit kimlikler

Doğal anahtarlar: 'user _ id', 'transaction _ id', 'device _ id', 'iban'.
Proxy anahtarları: e-posta/telefon (normalize edilmiş: kılıf, boşluklar, ülke kodları).
Suretler: Evrensel bir anahtarın yokluğunda hub tablolarında 'suret _ id'.

3. 2. Yumuşak eşleştirme kuralları

Deterministik: normalleştirilmiş e-posta + DR'nin tam eşleşmesi; 'ev "/" cep "telefonu - E.164.
Olasılıksal (bulanık): Ad/adres için Jaro-Winkler/Levenshtein, dizeler için TF-IDF/gömmeler, hızlanma için kaba karmalar/önekler tarafından "engelleme" (engelleme).
Grafik yaklaşımları: düğümler olarak varlıklar, kenarlar olarak tesadüfler; Bağlantı bileşenlerinin kümelenmesi.
Adım atma stratejisi: "Sınırda" manuel inceleme ile katı kurallardan yumuşak kurallara.

3. 3. Konsolidasyon kuralları (hayatta kalma)

Kaynağın önceliği, bir değer çakışması olduğunda "KYC kayıt defteri> CRM> günlükleri'dir.
Tazelik: Yeni zaman damgası kazanır (geçerlilik için ayarlanır).
Tamlık: NULL olmayan tercih; kümeleri birleştirerek adresleri/etiketleri birleştirme.
Denetim: "Çözüm izini" tutun - neyin üzerine yazıldığı ve neden.

4) Veri tekilleştirme ve MDM

MDM katmanı (Ana Veri Yönetimi): ana varlık tabloları + istochnik - ana ilişkiler.
Altın Kayıt: Gerçeğin 'güven' alanı/kaynağı ile toplanmış kayıt.
Geçmiş: Zamana bağlı nitelikler için SCD tip 2 (adres, KYC durumu).
Kimlikler: Harita tablolarını "birleştirme "/" dökülme "tarihleriyle birleştirin.

5) Değişim akışları: CDC, geç gelenler ve kopyalar

CDC (Change Data Capture): события 'insert/update/delete' + 'source _ lsn'/offset.
Geç olaylar: filigranlar ve ödemesiz dönem, ayarlamalar için geç güncellemeleri saklama.
Sıra dışı: anahtar ve zamana göre sıralama, güncellemeleri telafi etme.
Kopyalar: idempotent anahtarlar ('event _ id', 'idempotency _ key'), pencerede tekdüze.
Tam bir kez: işlemsel single/mağaza, deterministik mantık ile 'MERGE'.

6) Zaman dilimleri, para birimleri ve takvim

Zaman: UTC + yerelleştirilmiş dilimlerinde saklayın; 'intested _ at've' event _ time'ı açıkça saklayın.
Para birimleri: "Ham para birimini" saklayın ve işlem tarihindeki oranla normalleştirilmiş 'base _ ccy'.
Takvimler: Adil karşılaştırmalar için bölgelere göre tatil/iş günü tabloları.

7) Birleştirme için pseudo-SQL (upsert/merge)

7. 1. İşlemler (idempotent dergi)

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. Kullanıcı "altın kayıt" (kaynak önceliği + tazelik)

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) Kalite ve test

Test şeması: gerekli alanlar, türler, etki alanları.
Mantık testleri: anahtarın benzersizliği, kopyaların yokluğu, "zamanda geri" yok.
Mutabakatlar: kaynağa göre miktarlar ve son vitrin; Tutarsızlıklar - biletler.
Profilleme: dağılımlar, kesir NULL, "uzun kuyruklar".
Birleştirme metrikleri: hassasiyet/hatırlama eşlemeleri, % güven ≥ eşik ile kayıtların.

9) Gözlemlenebilirlik ve SLO

SLO tazeliği: pencere gecikmesi ≤ N dakika/saat; Gecikme izleme ve geri yükleme.
Uyarılar: Çoğaltmalarda bir artış, çatışmalarda bir artış, kapsama anahtarlarında bir düşüş.
Soy kütükleri: Alanın hangi kaynaktan alındığı, ne zaman ve kim tarafından üzerine yazıldığı.
Runybooks: Olay senaryoları (geç partiler, CDC fırtınaları, yanlış FX).

10) Güvenlik, gizlilik, uyumluluk

PII: takma ad, ID karma, BI'da maskeleme.
RLS/CLS: rollere ve satırlara göre erişim; İhracat - belirteçler ve son kullanma tarihi ile.
Veri ömrü: depolama programları; Kaldırma hakkı (DSAR) ve "yasal tutma".
Yeniden tanımlama: hassas tabloların birleşimlerini en aza indirmek için kurallar.

11) Model ve veri organizasyonu

Katmanlar: 'Ham' (olduğu gibi) - 'evreleme' (temizleme/normalleştirme) - 'çekirdek' (ana varlıklar, gerçek/ölçümler) - 'mart' (analitik/ML için vitrinler).
SCD: nitelikler için tip 2, hata düzeltme için tip 1; Açık 'valid _ from/valid _ to'.
Özellik Mağazası: dönüşüm işlevleri aynı çevrimiçi/çevrimdışı; Nokta-in-time doğruluğu.

12) Uygulama kalıpları

Anlamsal katman ile ELT: birleştirme mantığı bildirimsel olarak tanımlanır (kurallar, öncelikler, anahtarlar).
Stream + microbatch: Gerçek zamanlıya yakın ekranlar için - filigranlı 1-15 dk.
Grafik bağlantısı: Karmaşık tanımlama için ayrı bir grafik hub'ı (cihazlar, haritalar, adresler).
Adım atma doğrulaması: gölge modunda yeni bağlantı kuralları ekleyin, doğruluk metriklerini toplayın.

13) Birleştirme Öncesi Döngü Serbest Bırakma Kontrol Listesi

  • Kaynak sözleşmeler imzalandı; şemalar ve alan sözlükleri tutarlıdır
  • bağlantı anahtarları/tanımlanan kurallar; Veri tekilleştirme stratejisine sahip
  • Hayatta kalma kuralları ve kaynak öncelikleri belirlenir; Denetim-günlüğü etkin
  • CDC/idempotency/geç veri işleme uygulandı
  • Para Birimleri/Zaman Dilimleri/Takvim Normalleştirildi
  • Kalite testleri ve mutabakatlar kuruldu; Gözlemlenebilirlik panoları mevcuttur
  • SLO tazeliği ve kullanılabilirliği sabittir; Uyarılar ve runibooks hazır
  • PII/erişir/depolama uyumlu
  • Belgeler: Varlık Pasaportu, soy şeması, örnek istekler

14) "Altın kayıt" pasaportu (şablon)

Varlık: 'USER _ GOLDEN'

Anahtar: 'user _ master _ id' (vekil), eşlemeler 'source _ user _ id []'

Alanlar ve kurallar:
  • 'email': normalizasyon + öncelik 'KYC> CRM> LOGS'
  • 'telefon': E.164 normalleştirme, doğrulama bölünmesi
  • 'isim': Jaro-Winkler ≥ 0. 92, fallback - KYC kaynağı
  • 'adres': bileşik nesne; union + tazelik önceliği
  • Geçmiş: SCD2 ('valid _ from/valid _ to')
  • Lineage: donör alan referans listesi
  • Kalite: % coverage≥98, dublikaty≤0. 3%
  • SLO: tazelik ≤ 1 saat, kullanılabilirlik ≥ 99. 9%
  • Sahipleri: Veri Platformu, KYC/AML
  • Riskler: isim çarpışmaları, "aile" telefonları, paylaşılan cihazlar

15) Özet ve öneriler

Birleşme sadece bir "anahtarla JOIN'değil, bir taslaktır: kaynak sözleşmeler - tanımlama ve dedup - öncelikler ve CDC'nin" altın kaydı "- ve geç - kalite ve gözlemlenebilirlik - güvenlik ve değişim tarihi.
Kuralları şeffaf bir şekilde oluşturun, her çözümün denetimini yapın, SCD'yi ve tam olarak bir kez destekleyin. Bu, düzinelerce kaynaktan gelen verilerin ürün, analitik ve ML için güvenilir vitrinlere ve sürdürülebilir metriklere dönüşmesidir.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.