GH GambleHub

مخططات البيانات وتطورها

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 + الخصوصية (انظر قسم «التحقق من صحة البيانات»).

مثال (Avro، المدفوعات. deposit_accepted v1. 7. 0):
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: استغلال النموذج.

المجموع

وتطور المخططات عملية وليس انتقالا لمرة واحدة: التسجيل والنسخ وقابلية التشغيل المتبادل ؛ مزدوج التشغيل والأزرق والأخضر بدلاً من «المفاتيح في منتصف الليل» ؛ اختبارات التوافق والأعمال التجارية الثابتة بدلاً من الحظ. لذلك تظل البيانات مستقرة، والنماذج متوقعة، والتقارير صحيحة، والجهات التنظيمية هادئة.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.