GH GambleHub

عمليات ETL/ELT

1) الغرض والسياق

توفر خطوط أنابيب ETL/ELT تحميل وتحويل ونشر بيانات يمكن التنبؤ بها للإبلاغ (GGR/NGR، المنظمون) والتحليلات/ML والأفرقة التشغيلية.

ETL: تحول قبل التحميل إلى DWH/Lakehouse (أقل في كثير من الأحيان في الأكوام الحديثة).
ELT: التحميل الأول إلى Lakehouse (البرونز/الفضة)، ثم تحويل SQL/المحركات (الموصى به).

2) البنية المرجعية

1. Inster/Edge: HTTP/gRPC/Batch، CDC من OLTP، تحميل المزود S3/FTP.
2. برونزية (خام، مذيلة فقط): حمولات ثابتة، حفلات حسب التاريخ/السوق/المستأجر.
3. الفضة (نظيف/مطابق): التطبيع، التخلص، الأدلة، SCD، FX/المناطق الزمنية.
4. الذهب (خدمة): واجهات متاجر غير طبيعية لـ BI/regulator/models.
5. التنسيق: تدفق الهواء/الداغستر/المحافظ (DAG 'i، SLA، Retrai، Shifts).
6. DQ/Contracts: Schema Registry + DQ- как - код، اختبارات يحركها المستهلك.
7. إمكانية الرصد: مقاييس خطوط الأنابيب، والنسب، والسجلات، ولوحات التحكم في التكاليف.

3) اختيار ETL مقابل ELT

المعيارETLELT (موصى به)
مرونة المخصصاتمنخفضة(السفر عبر الزمن وإعادة المعالجة)
التكلفةأغلى عند النموالأمثل عند التحجيم
مراقبة الجودةعلى تناولإلى الفضة/الذهب + DQ-as-code
التاريخ/الطب الشرعيمحدودةكامل (ملحق برونزي فقط)

الممارسة: في iGaming - ELT + CDC: قم بالتحميل بسرعة، ثم قم بالتوحيد والعد.

4) الزيادات ومركز السيطرة على الأمراض

يقترب دلتا:
  • CDC (Debezium/log replication): تغييرات OLTP → البرونز → MERGE في الفضة.
  • العلامة المائية بالوقت: "محدث _ على> max_loaded_ts'.
  • هاش ديف: مقارنة «md5 (صف)» لاكتشاف التغيير.
  • Upsert/MERGE: خصوصية التنزيلات.
مثال MERGE (دلتا/Iceberg):
sql
MERGE INTO silver. payments s
USING stage. payments_delta d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

5) العقود والمخططات

Schema-first: JSON/Avro/Protobuf in Registry; «chema _ نسخة» في الأحداث/الملفات.
التطور: متوافق مع الظهر (الإضافات غير القابلة للإلغاء) ؛ كسر - '/v2 '+ دخول مزدوج.
الحقول المطلوبة هي "event _ time (UTC)" و "event _ id" و "trace _ id' و" user _ pseudo _ id' و "market'.

6) DQ-as-code (المجموعة الدنيا)

yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: unique_tx # uniqueness of transactions type: unique columns: [transaction_id]
severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical

7) التنسيق: DAG 'و، التبعيات، SLA

تصميم DAG: من المصادر إلى واجهات المحلات ؛ التبعيات الصريحة بين المهام.
Retrai and idempotence: التراجع، الإعادة «النظيفة»، نقاط التفتيش.
اللحاق بالركب: صيد أنيق للفترات الضائعة.
SLA: الذهب، على سبيل المثال. واليوم جاهز قبل الساعة السادسة بالتوقيت المحلي ؛ تنبيهات بشأن الانتهاكات.
تحديد البارامترات: الأسواق/المستأجرين/التواريخ عن طريق vars ؛ نموذج عمل واحد.

8) الفراغ ومرة واحدة بالضبط

في الابتلاع: النسخ المكررة ممكنة → التخلص من «(event_id، المصدر)».
في التجهيز: الانزعاج/الدمج ؛ وظائف التحول «البحتة».
في الحوض: ارتكاب معاملات أو كتابة أخطاء ؛ السيطرة على «العد المزدوج».
Outbox/Inbox: نشر المعاملات لأحداث المجال من OLTP.

9) ردم и إعادة المعالجة

الردم: الملء الأساسي/النطاقات التاريخية.
إعادة المعالجة - إعادة الحساب عندما يتغير المنطق/التصحيح.
حواجز الحماية: حدود النطاق، الحصص، النوافذ الزمنية، التشغيل الجاف مع مقارنة مترية.
وضع العلامات: "منطق _ نسخة"، "أعيد معالجتها _ at'،" recalc _ reason ".

10) النمذجة الفضية/الذهبية

الفضة (3NF/BCNF): حقائق «حقيقة _ رهانات/مدفوعات/مدفوعات»، أبعاد «dim _ users/games/providers/markets (SCD II)»، توحيد العملة/المناطق الزمنية.
الذهب: واجهات متاجر غير طبيعية للأسواق/المنظم/النماذج ؛ طرود التصدير الثابتة + التوقيع.

مثال ذهبي: GGR Daily

sql
CREATE OR REPLACE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
b. market,
g. provider_id,
SUM(b. stake_base) AS stakes_eur,
SUM(p. amount_base) AS payouts_eur,
SUM(b. stake_base) - SUM(p. amount_base) AS ggr_eur
FROM silver. fact_bets b
LEFT JOIN silver. fact_payouts p
ON p. user_pseudo_id = b. user_pseudo_id
AND p. game_id = b. game_id
AND DATE(p. event_time) = DATE(b. event_time)
JOIN dim. games g ON g. game_id = b. game_id
GROUP BY 1,2,3;

11) الخصوصية والإقامة

التقليل إلى أدنى حد: الترميز ؛ رسم خرائط للهويات الحقيقية في الحلقة المعزولة.
RLS/CLS: سياسات الوصول حسب الدور/الولاية القضائية، الإخفاء.
الإقامة: أدلة/مفاتيح منفصلة للمنطقة الاقتصادية الأوروبية/المملكة المتحدة/BR ؛ حظر الانضمام عبر الأقاليم دون سبب.
DSAR/RTBF & Legal Hold: تعديلات انتقائية، أرشيف WORM للإبلاغ، مراجعة الصادرات.

12) إمكانية الرصد و SLO

معايير SLI/SLO:
  • نضارة الفضة p95 ≤ 15 دقيقة ؛ الذهب اليومي جاهز حتى الساعة 06:00. الوقت.
  • الاكتمال ≥ 99. 5٪، صلاحية (مخطط) ≥ 99. 9%.
  • نجاح الوظائف ≥ 99. 0٪، حوادث MTTR ≤ 24-48 ساعة.

لوحات القيادة: خريطة حرارة طازجة، قمع خسارة DQ، تكلفة/استعلام وتكلفة/جيجابايت، رسم بياني للنسب.

13) الأداء والتكلفة

التقسيم: التاريخ/السوق/المستأجر ؛ التجميع/الترتيب Z بواسطة المرشحات.
التنسيقات: Parquet + ACID (Delta/Iceberg/Hudi)، الضغط والإحصاء.
Compaction: fighting small files (APTIMIZE/VACUUM).
التجسيد: مجاميع مستقرة ؛ تجنب الانضمامات العملاقة أثناء الطيران.
رد التكاليف: الميزانيات، وحصص إعادة التشغيل/الردم ؛ الجدولة في نوافذ الحمولة المنخفضة.

14) أمثلة على مهام DAG النموذجية (Airflow pseudocode)

python with DAG("elt_payments_daily", schedule="@daily", start_date=..., catchup=True) as dag:
extract = BashOperator(task_id="extract_cdc", bash_command="run_cdc_to_bronze. sh {{ ds }}")
load  = BashOperator(task_id="load_to_silver", bash_command="sql/run_merge_silver. sql {{ ds }}")
dq   = BashOperator(task_id="dq_checks", bash_command="dq/run_checks. sh silver. payments {{ ds }}")
gold  = BashOperator(task_id="build_gold_ggr", bash_command="sql/build_gold_ggr. sql {{ ds }}")
export = BashOperator(task_id="export_regulator", bash_command="export/run_worm_pack. sh {{ ds }}")

extract >> load >> dq >> gold >> export

15) العمليات و RACI

R (مسؤول): هندسة البيانات (DAG، النماذج الفضية/الذهبية)، منصة البيانات (infra، Registry، DQ).
ألف (مسؤول): رئيس قسم البيانات/المدير التنفيذي.
جيم (استشاري): الامتثال/القانوني/DPO (PII/الإقامة/الحجز القانوني)، المالية (FX/GGR)، المخاطر (RG/AML)، SRE (SLO/стоимость).
I (مطلع): BI/Product/Marketing/Operations.

16) خارطة طريق التنفيذ

أفضل لاعب (3-5 أسابيع):

1. Lakehouse Bronze/Silver (ACID) + CDC/الزيادات للمدفوعات/طريقة اللعب.

2. DQ-like-code (10-15 rules) و basic Freshness/Compleness dashboards.

3. First Gold Showcase (GGR Daily) مع SLA «حتى 06:00»، تصدير WORM مع التوقيع.

4. DAG وتنظيم التنبيه على جيش تحرير السودان/DQ.

المرحلة 2 (5-10 أسابيع):
  • توسيع النطاق، SCD II للمستخدمين/الألعاب/مقدمي الخدمة.
  • طبقة دلالية من المقاييس ؛ وتحليل النسب/الأثر ؛ إجراءات الردم/إعادة المعالجة.
  • الهيكلة الإقليمية (EEA/UK)، RLS/CLS، التحكم في التكاليف (الحصص/رد التكاليف).
المرحلة 3 (10-16 أسبوعاً):
  • محاكي إعادة التشغيل (ماذا لو)، التوليد التلقائي لوثائق العرض/المقاييس.
  • تحسين التكلفة (التجميع، التجسيد، TTL، الضغط).
  • تمارين DR واسترداد السفر عبر الزمن.

17) قائمة مرجعية قبل البيع

  • العقود/المخططات في السجل، اختبارات التوافق خضراء.
  • زيادات/زيادات CDC و MERGE خفية ؛ ديديب لتناول.
  • قواعد DQ نشطة (→ الحرجة تفشل + DLQ)، تم تكوين لوحات معلومات SLA.
  • معارض الذهب موثقة، صيغ مترية في الطبقة الدلالية.
  • تم التحقق من RBAC/ABAC، التشفير، الإقامة، DSAR/RTBF/Legal Hold.
  • الضغط/الاستخدام الأمثل/الفراغ في جدول زمني ؛ حدود الردم/إعادة التشغيل.
  • دفتر التشغيل والحوادث وإعادة المعالجة، صادرات مراجعة الحسابات (WORM + hash).

18) الأنماط والمخاطر المضادة

إعادة التحميل الكاملة «فقط في حالة»: استخدم CDC/الزيادات.
خلط البيانات الخام والمبلغ عنها: حافظ على فصل البرونز/الفضة/الذهب.
الافتقار إلى DQ والنسب: لا يمكن إثباته واستنساخه.
PII في طبقات تحليلية: عزل الخرائط، تطبيق CLS/RLS.
اللكمات «الليلية» المتجانسة: سحق، موازية على دفعات.
تجاهل التكلفة: راقب الملفات الصغيرة، وتجسيد المجاميع، وتقديم الحصص.

19) مسرد (موجز)

ETL/ELT - الاستخراج/التحويل/التحميل (قبل/بعد التحميل).
مركز السيطرة على الأمراض - التقاط التغيير.
SCD - تأريخ القياس (I/II/III).
WORM - تخزين غير قابل للتغيير لحزم التقارير.
السفر عبر الزمن - قراءة النسخ التاريخية من الجداول.

20) خلاصة القول

ETL/ELT الحديثة ليست نصوصًا، ولكنها منصة مُدارة: العقود و DQ، والزيادات الخفية/CDC، وانضباط الطبقة البرونزية/الفضية/الذهبية، وقابلية الملاحظة و SLO، والخصوصية والاقتصاد. من خلال اتباع هذا الدليل، ستحصل على خطوط أنابيب قابلة للتكرار وقابلة للتدقيق تعمل باستمرار على تشغيل التقارير والمنتجات والنماذج على نطاق واسع وبدون مفاجآت.

Contact

اتصل بنا

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

Telegram
@Gamble_GC
بدء التكامل

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

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

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