مخططات البيانات وتطورها
1) لماذا هذه منصة iGaming
الموثوقية - التغييرات في البيانات لا تكسر التقارير أو واجهات برمجة التطبيقات أو النماذج.
سرعة الميزة: أضف الحقول بأمان (KYC/RG/PSP) دون إيقاف التدفقات.
التنظيم: قابلية التتبع والتكاثر (مراجعة الحسابات/النسب، DSAR، Legal Hold).
التكلفة: تقليل «الفائض» وتعطيل الردم.
2) أنواع المخططات وأين تعيش
الأحداث (التدفقات): المدفوعات. deposit_accepted'، لعبة. round_finished'.
OLTP/DDL: جداول طبيعية (KYC، الحسابات، الحدود).
DWH/واجهات المحلات (الذهب): مجاميع غير طبيعية تحت BI/ML.
متجر الميزات: مجموعات ميزات عبر الإنترنت/غير متصلة بالإنترنت مع ضمانات الاتساق.
عقود الشركاء الخارجيين: PSP، مزودي الألعاب، مصادر التسويق.
الملاحظات: Avro/Protobuf (تيارات)، مخطط JSON (اندماجات)، SQL DDL (DWH)، مخطط Parquet (بحيرة).
3) التوافق (جوهر التطور)
متوافق مع الخلف: المنتجون الجدد → المستهلكون القدامى (الحقل المضاف ج الافتراضي/غير القابل للإلغاء).
متوافق إلى الأمام: المنتجون القدامى → المستهلكون الجدد (القارئ الجديد يتجاهل غير ضروري).
متوافقة تماما: كلاهما (هدف مرغوب فيه للأحداث).
تغييرات الكسر: إعادة تسمية/حذف حقل، تغيير النوع/الدلالات، تغيير المفتاح/التقسيم.
القاعدة 1: تتطور الأحداث من خلال الإضافة وليس من خلال التغيير.
القاعدة 2: تحذف - فقط في النسخة الرئيسية من المخطط بعد فترة الاستنكاف.
4) الإصدارات والسياسات الدلالية
الرائد. قاصر. PATCH لكل مخطط/عرض/مجموعة ميزات.
MAJOR - غير متوافق (موضوع/جدول/مجموعة ميزات جديدة، ثنائية التشغيل).
MINOR - متوافقة (حقول جديدة غير قابلة للإلغاء/افتراضية، قيم جديدة enum).
PATCH - تحرير الأوصاف/الحدود/التعليقات.
دورة الحياة الميدانية: «تجريبية → نشطة → مستنكرة → إزالتها» (مع التواريخ والمالك).
5) عقود سجل المخططات والبيانات
سجل المخطط: تخزين الإصدارات والتوافق والتطور والمالكين.
عقد البيانات: يصلح المخطط + جودة SLO + الخصوصية (انظر قسم «التحقق من صحة البيانات»).
json
{
"type":"record","name":"deposit_accepted","namespace":"payments",
"fields":[
{"name":"event_id","type":"string"},
{"name":"occurred_at","type":{"type":"long","logicalType":"timestamp-micros"}},
{"name":"user_id","type":"string"},
{"name":"brand","type":"string"},
{"name":"country","type":"string"},
{"name":"psp","type":"string"},
{"name":"method","type":"string"},
{"name":"amount","type":{"type":"bytes","logicalType":"decimal","precision":18,"scale":2}},
{"name":"currency","type":{"type":"enum","name":"Currency","symbols":["EUR","USD","TRY","BRL"]}},
{"name":"risk_score","type":["null","int"],"default":null}, // MINOR+
{"name":"kyc_level","type":["null",{"type":"enum","name":"Kyc","symbols":["L0","L1","L2","L3"]}],"default":null}
],
"compatibility":"FULL","owner":"team-payments"
}
6) أنماط الهجرة
6. 1 أحداث (مجاري)
المواد المضافة فقط: تضاف حقول افتراضية/غير قابلة للإلغاء ؛ لا ينكسر المستهلكون القدامى.
امتدادات Enum: تعتبر الأحرف الجديدة طفيفة، ويطلب من المستهلكين أن يكون لديهم فرع «آخر/غير معروف».
الهجرة الرئيسية: مدفوعات الموضوع الجديد. deposit_accepted. v2 '، مزدوج الكتابة، يقرأ الظل، ثم تبديل المستهلكين.
6. 2 واجهات محلات DWH/
طاولات زرقاء وخضراء: ذهبية. revenue_v2' بجانب 'v1' ؛ تجسيد، التحقق، تبديل BI.
الردم: إعادة التشغيل بواسطة لقطات + دمج خفي (حسب المفاتيح/الإصدارات).
SCD: النوع 2 للسمات المتغيرة ببطء (الحدود، KYC، أوضاع كبار الشخصيات).
6. 3 متجر ميزات
ثنائي الخدمة: يتم تقديم مجموعة الميزات القديمة بالتوازي مع المجموعة الجديدة ؛ يتم خدمة النموذج عبر جهاز توجيه.
الاتساق الزمني: لا ينبغي أن يكسر التطور أفراح PITA (لم يتغير الطابع الزمني/الدقة في MINOR).
7) تصنيف التغييرات (قائمة مرجعية)
آمنة (طفيفة):- إضافة مجال «غير قابل للإلغاء/الافتراضي» ؛
- امتداد enum (مع فرع «غير معروف» عند المستهلك) ؛
- إضافة مؤشر غير رئيسي/تعليق/وصف.
- تغير الجدول/الوحدة (على سبيل المثال، المبلغ بالسنتات → العملة الأساسية) - المبلغ الرئيسي فقط
- الإحالة المرجعية/المرجعية - من خلال طبقة العرض.
- إعادة تسمية/حذف حقل
- قم بتغيير النوع/الشكل/المفتاح/التقسيم
- تغيير الدلالات (على سبيل المثال، «المكافأة _ المبلغ» من «المتراكم» → «المشطوب»).
8) بطانات الدائرة واختبارات التوافق
Schema-lint: name style ('snake _ case'), required labels ('owner', 'doc', 'pii'), date/custry format.
الاختبارات المركبة: التحقق من النسخة الجديدة مقابل السجل (إلى الخلف/إلى الأمام/إلى الأمام/إلى الأمام).
اختبارات عقود المستهلك: توفر كل خدمة «عينة من الحمولة» والتوقعات ؛ تشغيل على CI عند تغيير المخطط.
مجموعات البيانات الذهبية: مجموعة من الأمثلة الحقيقية و «الشريرة» (حقول جديدة، حقول فارغة/متأخرة، قيم حدود المبالغ).
9) الأدلة، enum والتوطين
البيانات المرجعية (البلدان/العملات/دعم البرامج والخدمات/مقدمو الخدمات): النسخ الفردية وتحديثات اتفاق البيئة المستدامة ؛ لا تخيط في رمز الحدث.
المناطق المحلية/الزمنية: تخزين التوقيت العالمي المنسق في الأحداث + الموقع الصريح للعرض.
قواعد الاختصاص: الأعلام العمرية، والقيود الترويجية - في شكل أدلة مع تواريخ العمل.
10) العلامات التجارية المتعددة/متعددة الولايات القضائية و PII
عزل المستأجر: «العلامة التجارية»، «البلد»، «الترخيص» - الحقول الإلزامية مع إينوم ؛ التوجيه عليهم.
سياسة PII على مستوى المخطط: وضع علامة على الحقول «pii = true»، وضع أقنعة/ترميز ؛ في الأحداث، فقط الرموز.
DSAR: وجود 'source _ id/trace _ id' لحذف/استرجاع ؛ تعليق قانوني على الهجرات الرئيسية.
11) إصدار DDL و Lake
هجرات DDL: الهجرات الإعلانية (Liquibase/Flyway/dbt)، التخزين في VCS، مراجعة من قبل مالك المجال.
التنسيقات في البحيرة: أفرو/باركيه - سجل تطور الحقول ؛ MAJOR - جدول/مسار جديد «.../v2/».
التقسيم: الأجزاء المتغيرة (على سبيل المثال، «date'→'date,brand») - فقط من خلال MAJOR والدخول المزدوج.
12) أمثلة على iGaming
12. 1 طرق ممتدة PSP
تمت إضافة "طريقة =" MEFETE "إلى enum.
إصدار طفيف من 'deposit _ مقبول v1. 8. 0`; يرسل المستهلكون الذين لا يعرفون MEFETE فرعًا إلى «طريقة غير معروفة _».
12. 2 مزود الألعاب أضاف الملاعب
V 'game. round_finished' إضافة «jackpot _ id» (غير قابل للإلغاء).
ذهب العرض. game_rounds_v3' يتلقى MINOR ؛ التقارير القديمة تعمل، والجدد يحسبون الجوائز الكبرى.
12. 3 سمات RG
الانتقال من Boolean 'المستبعد ذاتيًا' إلى الوضع 'rg _ state ∈ {لا، حد، تهدئة، self_excluded}' - MAJOR، موضوع جديد + مزدوج الكتابة + ترحيل العروض والنماذج.
13) عملية التطور (من الفكرة إلى التبديل)
1. الاقتراح (ADR): لماذا التغيير ونوع التوافق وتقييم المخاطر والمستهلكين المتأثرين.
2. التصميم والعقد: مخطط للتسجيل، وسياسة نصف النهائي، وسياسة التوافق.
3. الاختبارات: بطانات، كومبات، عقود المستهلك، إعادة التشغيل على المجموعات الذهبية.
4. النشر: ثنائي الكتابة/أزرق - أخضر/قراءة الظل ؛ تنبيهات.
5. التسوية: الأرصدة التجارية/الثوابت (انظر التحقق من صحة البيانات).
6. التبديل: تبديل المستهلكين/BI/الميزات.
7. نقض: تجميد المخطط القديم، فترة السماح، حذف وأرشفة.
14) مقاييس التطور
معدل نجاح الهجرات، والوقت المزدوج، وحصة الأحداث الجديدة، وحجم الردم، والتأخر/النضارة.
حوادث التوافق (P1/P2)، جودة النوافذ بعد التبديل.
التكلفة: دولار/سل فائض، دولار/ساعة مزدوج الكتابة، حمل عنقودي.
الامتثال: 0 تسريب PII، SLA DSAR/Legal Hold اجتمعت.
15) الأدوات والتحف
15. 1 سياسة التوافق (السجل)
yaml schema: payments. deposit_accepted compatibility: FULL default_nulls: true enums:
currency: {allow_new_symbols: true, require_consumer_unknown_branch: true}
pii: false owners: ["team-payments"]
reviewers: ["data-governance","security-dpo"]
15. جواز سفر الهجرة 2 (نموذج)
yaml change_id: MIG-2025-041 scope: game. round_finished -> v3 type: MAJOR plan:
dual_write: true shadow_reads: consumers: ["gold-rounds","rg-models"]
backfill: {from: "2025-01-01", mode: "idempotent-merge"}
validation:
invariants: ["sum_bets = sum_wins + margin + bonuses"]
freshness_delta_p95_max: "PT5M"
switch_criteria:
error_rate_max: 0. 1%
kpi_diff_pp_max: 0. 5 deprecate_after: "2025-12-31"
15. 3 بطانة الأسماء والأنواع (القواعد)
'sake _ case', UTC timetamps, DECIMAL (18. 2) بالنسبة للمبالغ، «البلد» بالنسبة ISO-3166-1 ألفا-2، «العملة» بالنسبة ISO-4217.
No 'free _ text' for or enum fields; كتب مرجعية - خارجية.
16) خارطة طريق التنفيذ
0-30 يومًا (MVP)
1. تمكين سجل المخطط + سياسة التوافق للأحداث الرئيسية (المدفوعات، game_rounds، المستخدم).
2. اختبارات البطانات/الكومبات في CI ؛ دليل المالك واستعراضات SLA.
3. نماذج ADR وجواز سفر الهجرة ؛ قائمة مرجعية رئيسية.
30-90 يومًا
1. واجهات متاجر Blue-Green for Gold ؛ مزدوج الكتابة للمواضيع الحرجة.
2. اختبارات عقود المستهلك للخدمات الأساسية ؛ مجموعات البيانات الذهبية.
3. التسويات والإنذارات الآلية عند التبديل ؛ تقارير التكاليف.
3-6 أشهر
1. عملية إهدار/إزالة واحدة مع فترة سماح ؛ الأرشفة والحجز القانوني.
2. مخططات ومفاتيح التشفير الخاصة بالأرض/المستأجر ؛ متغيرات موانئ دبي للأسواق الحساسة.
3. قاموس البيانات ومخططات النسب الحية.
17) RACI
إدارة البيانات: المعايير، والسجل، واستعراض الهجرة، وإلغاء النشر.
مالكو المجال (R): معنى الحقول، الكتب المرجعية، الثوابت التجارية.
منصة البيانات (R): أدوات التسجيل، اختبارات الكومبات، التشغيل المزدوج/التعبئة الخلفية.
الأمن/إدارة الشؤون السياسية (A/R): السياسات المتعلقة بالمؤسسات الاستئمانية الدولية، الجغرافيا/المستأجرة، DSAR/Legal Hold.
SRE/Observability (C): alerts, evolution SLO, capacity.
المنتج/التمويل (C): التحقق من صحة مؤشرات الأداء الرئيسية، وتبديل النوافذ.
18) الأنماط المضادة
«حرر الحقل بسرعة» بدون إصدارات وتشغيل مزدوج.
إعادة التسمية بدلاً من إضافة حقل جديد → أعطال هائلة.
من الصعب عدم وجود فرع «غير معروف» → يسقط في القيم الجديدة.
دليل واحد «في رمز» لجميع الولايات القضائية.
ردم بدون رصيد الدمج والتحقق.
سجلات مع PII وبدون trace_id للبحث/DSAR.
19) الأقسام ذات الصلة
التحقق من صحة البيانات، أصل البيانات ومسارها، ممارسات DataOps، التحليلات والمقاييس API، التدقيق والتحديث، أمن البيانات والتشفير، التحكم في الوصول، MLOps: استغلال النموذج.
المجموع
وتطور المخططات عملية وليس انتقالا لمرة واحدة: التسجيل والنسخ وقابلية التشغيل المتبادل ؛ مزدوج التشغيل والأزرق والأخضر بدلاً من «المفاتيح في منتصف الليل» ؛ اختبارات التوافق والأعمال التجارية الثابتة بدلاً من الحظ. لذلك تظل البيانات مستقرة، والنماذج متوقعة، والتقارير صحيحة، والجهات التنظيمية هادئة.