دمج البيانات من مصادر مختلفة
دمج البيانات من مصادر مختلفة
دمج البيانات هو عملية الجمع بين التدفقات غير المتجانسة (قواعد بيانات المنتج، وإدارة علاقات العملاء، ومقدمي المدفوعات، وسجلات الأحداث، وسجلات الأطراف الثالثة) في كيانات شاملة وواجهات متاجر متسقة. الهدف هو الحصول على سجل ذهبي وتخفيضات متسقة للتحليلات و ML والحالات التشغيلية.
1) السيناريوهات والأهداف النموذجية
360 درجة في الجوهر: العميل/اللاعب، الجهاز، أداة الدفع، التاجر.
دمج المعاملات: العديد من PSPs/السجلات النقدية → سجل واحد مع الخصوصية الإلزامية.
تطبيع الحدث: سجلات الويب/الهاتف المحمول/الخلفية → قاموس حدث واحد.
الإثراء: أدلة خارجية (geo, FX, AML/sentions, marketing sources).
المقاييس الموحدة: تنسيق العملات/المناطق الزمنية والمخططات والترميزات.
2) المصدر: العقود والمخططات
قبل البدء - عقد بيانات لكل مصدر:- المخطط: المجالات والأنواع والبطلان والمفاتيح ومجالات القيمة.
- الدلالات: ما يعنيه كل مجال (قاموس).
- SLA: النضارة/التردد، والوقت الأقصى والخروج عن النظام.
- التطور: سياسة تغيير المخطط (إلى الخلف/إلى الأمام)، الاكتئاب.
- الجودة: تفرد المفاتيح، النطاقات المقبولة، السلامة المرجعية.
3) تحديد الهوية: المفاتيح ورسم الخرائط (ربط السجلات)
3. 1. هوية صلبة
المفاتيح الطبيعية: «مستخدم _ معرف»، «معاملة _ معرف»، «جهاز _ معرف»، «إيبان».
المفاتيح بالوكالة: البريد الإلكتروني/الهاتف (طبيعي: الحالة، والمساحات، ورموز البلدان).
البدائل: «بديل _ معرف» في طاولات المحور في غياب مفتاح عالمي.
3. 2. قواعد المطابقة الناعمة
حتمية: مطابقة دقيقة للبريد الإلكتروني الطبيعي + DR ؛ «المنزل «/» الهاتف المحمول «→ E.164.
الاحتمالية (غامضة): Jaro-Winkler/Levenshtein للاسم/العنوان، TF-IDF/تضمين للأوتار، «الحجب» (الحجب) عن طريق التجزئة الخشنة/البادئات للتسارع.
يقترب الرسم البياني: الكيانات كعقد، والمصادفات كحواف ؛ مكونات الربط العنقودي.
استراتيجية التصعيد: من القواعد الصارمة إلى القواعد اللينة مع مراجعة يدوية «على الحدود».
3. 3. قواعد التوحيد (البقاء)
أولوية المصدر هي "سجل KYC> CRM> logs' عندما يكون هناك تضارب في القيم.
النضارة: الانتصارات الزمنية الأحدث (معدلة حسب الصلاحية).
الامتلاء: يفضل غير NULL ؛ دمج العناوين/العلامات عن طريق الجمع بين المجموعات.
التدقيق: حافظ على «مسار الحل» - ما الذي تم كتابته أعلاه ولماذا.
4) التفريغ و MDM
طبقة MDM (Master Data Management): جداول الكيان الرئيسي + العلاقات istochnik→master.
السجل الذهبي: سجل تجميعي مع مجال «الثقة »/مصدر الحقيقة.
التاريخ: SCD النوع 2 للسمات المعتمدة على الوقت (العنوان، حالة KYC).
الهويات: ادمج جداول الخرائط مع تواريخ «الدمج «/» الانسكاب «.
5) تدفقات التغيير: مراكز السيطرة على الأمراض والوقاية منها والمتأخرون والمكررون
CDC (Change Data Capture): события «إدخال/تحديث/حذف» + «المصدر _ lsn »/التعويض.
الأحداث المتأخرة: العلامات المائية وفترة السماح، وتخزين التحديثات المتأخرة للتعديلات.
خارج النظام: الفرز حسب المفتاح والوقت، تعويض التحديثات.
نسخ مكررة: مفاتيح idempotent ('event _ id'، 'idempotency _ key')، dedup في النافذة.
مرة واحدة بالضبط: معاملات فردية/متجر، «دمج» بمنطق حتمي.
6) المناطق الزمنية والعملات والتقويم
الوقت: التخزين في الشرائح المحلية UTC + ؛ صراحة تخزين "ingested _ at' و" event _ time ".
العملات: تخزين «العملة الخام» و «العملة الأساسية» العادية بسعر الفائدة في تاريخ المعاملة.
التقويمات: جداول العطلات/أيام العمل حسب المنطقة لإجراء مقارنات عادلة.
7) Seudo-SQL للدمج (اضطراب/دمج)
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) الجودة والاختبار
مخطط الاختبار: الحقول والأنواع والمجالات المطلوبة.
الاختبارات المنطقية: تفرد المفتاح، عدم وجود نسخ مكررة، لا «بالزمن».
التسويات: المبالغ حسب المصدر مقابل العرض النهائي ؛ التناقضات → التذاكر.
التنميط: التوزيعات، كسر NULL، «ذيول طويلة».
مقاييس الدمج: رسم خرائط الدقة/الاستدعاء،% من السجلات بثقة ≥ العتبة.
9) إمكانية الرصد و SLO
نضارة SLO: تأخر النوافذ ≤ N دقيقة/ساعة ؛ تأخير الرصد والتراكم.
التنبيهات: زيادة في النسخ المكررة، وزيادة في النزاعات، وانخفاض في مفاتيح التغطية.
سجلات النسب: من أي مصدر تم أخذ الحقل، ومتى ومن كتبه.
كتب التشغيل: سيناريوهات الحوادث (الدفعات المتأخرة، عواصف مراكز السيطرة على الأمراض، العملات الأجنبية غير الصحيحة).
10) الأمن والخصوصية والامتثال
PII: التسلية، تجزئة الهوية، القناع في BI.
RLS/CLS: الوصول حسب الأدوار والصفوف ؛ التصدير - مع الرموز وتاريخ انتهاء الصلاحية.
عمر البيانات: جداول التخزين ؛ الحق في إزالة (DSAR) و «الاحتجاز القانوني».
إعادة تحديد الهوية: قواعد للتقليل إلى أدنى حد من انضمام الجداول الحساسة.
11) تنظيم النموذج والبيانات
الطبقات: 'خام' (كما هو الحال) → 'انطلاق' (تنظيف/تطبيع) → 'نواة' (كيانات رئيسية، حقائق/قياسات) → 'مارت' (معارض للتحليلات/ML).
SCD: النوع 2 للسمات، النوع 1 لتصحيح الخطأ ؛ صراحة «صالحة _ من/صالحة _ إلى».
متجر الميزات: وظائف التحويل متطابقة عبر الإنترنت/غير متصلة بالإنترنت ؛ نقطة في الوقت الصحيح.
12) أنماط التنفيذ
ELT مع طبقة دلالية: يتم وصف منطق الدمج بشكل معلن (القواعد والأولويات والمفاتيح).
Stream + microbatch: للعروض في الوقت الفعلي تقريبًا - microbatches 1-15 دقيقة مع علامات مائية.
ربط الرسم البياني: محور رسم بياني منفصل لتحديد الهوية المعقدة (الأجهزة والخرائط والعناوين).
التحقق من صحة التصعيد: إدراج قواعد ربط جديدة في وضع الظل، وجمع مقاييس الدقة.
13) قائمة التحقق من إصدار حلقة الدمج المسبق
- توقيع عقود المصدر ؛ والمخططات والقواميس الميدانية متسقة
- تعريف مفاتيح/قواعد الربط ؛ استراتيجية للتفريغ
- وضع قواعد البقاء وأولويات المصادر ؛ تمكين سجل مراجعة الحسابات
- تم تنفيذ CDC/idempotency/معالجة البيانات المتأخرة
- تطبيع العملات/المناطق الزمنية/التقويم
- وضع اختبارات الجودة والتسويات ؛ تتوفر لوحات قياسية للمراقبة
- تم تثبيت نضارة وتوافر SLO ؛ التنبيهات والكتب الجاهزة جاهزة
- PII/الوصول/التخزين المتوافق
- الوثائق: جواز سفر الكيان، مخطط النسب، طلبات العينة
14) جواز سفر «السجل الذهبي» (نموذج)
الكيان: 'USER _ GOLDEN'
المفتاح: «المستخدم _ master _ id» (بديل)، الخرائط «المصدر _ المستخدم _ معرف []»
المجالات والقواعد:- «بريد إلكتروني»: تطبيع + أولوية «KYC> CRM> LOGS»
- «الهاتف»: التطبيع E.164، انقسام التحقق
- «الاسم»: جارو وينكلر ≥ 0. 92، احتياطي - مصدر KYC
- «لباس»: كائن مركب ؛ الاتحاد + أولوية النضارة
- التاريخ: SCD2 ('صالح _ من/صالح _ إلى')
- النسب: القائمة المرجعية الميدانية للمانحين
- الجودة: coverage≥98٪، dublikaty≤0. 3%
- SLO: نضارة ≤ 1 ساعة، توافر ≥ 99. 9%
- المالكون: منصة البيانات، KYC/AML
- المخاطر: اصطدامات الأسماء، الهواتف «العائلية»، الأجهزة المشتركة
15) موجز وتوصيات
الاندماج ليس فقط «الانضمام حسب المفتاح»، ولكنه مخطط: عقود المصدر → وتحديد وإلغاء الأولويات → و «السجل الذهبي» → مراكز السيطرة على الأمراض والوقاية منها → والجودة المتأخرة وقابلية الملاحظة → والسلامة وتاريخ التغيير.
قم ببناء القواعد بشفافية، واحتفظ بمراجعة لكل حل، ودعم SCD ومرة واحدة بالضبط. هذه هي الطريقة التي تتحول بها البيانات من عشرات المصادر إلى واجهات متاجر موثوقة ومقاييس مستدامة للمنتج والتحليلات و ML.