GH GambleHub

עיבוד אצווה

1) מטרה וערך

מסעי אצווה יוצרים תיקי תצוגה יומיים/שעות עבור:
  • דיווח רגולטורי ופיננסי (GGR/NGR, מסים, רישומי RG/AML).
  • BI ואנליטיקת מוצר (קוהורטות, LTV, משפכי המרה).
  • אימות דיוק (OLTP↔DWH, ספקים/PSP), היסטוריזציה (SCD).
  • הכנת תכונות ומערך אימונים עבור אם-אל.

מאפייני מפתח: חיזוי, שלמות, רבייה, עלות נמוכה ליחידת נתונים.

2) ארכיטקטורה (התייחסות)

1. Innught (לכידה גולמית): HTTP/gRPC, CDC מ-OLTP, הספק מעלה את ”ברונזה”.
2. Lakehouse: Bronze (raw, apend-only) # Silver (נקי/conform) # Gold (הגשה).
3. תזמור: Flow/Dagster/Prefect (DAG, תלות, מגשים מחדש, SLA).
4. עיבוד: Spark/Trino/DBT/SQL; חלוקה ופורמטים של חומצה (דלתא/קרחון/האדי).
5. DQ וחוזים: Schema Registry, DQ rules (YAML/SQL), בדיקות צרכנים.
6. הגשה: שכבה BI/סמנטית, יצוא דוח (CSV/PDF/JSON + hash), API/GraphQL.
7. תצפיות: מדדי צינור, שושלות, יומנים, עלות (עלות/GB, עלות/שאילתה).

3) תדרים ו ־ SLAs

יומי (D + 1 עד 06:00 לנעול.) : דו "חות GGR, העלאות רגולטוריות, פיוס.
שעה/שעה: לוחות תפעוליים עבור Ops/Finance.
שבועי/חודשי: איתור סופי, מודלים וטרופרודוקציה.

SLOS מומלץ:
  • תצוגות זהב יומיות מוכנות עד השעה 06:00 לפי שעון מקומי.
  • רעננות Silver p95/15 min עבור מיקרו עטלפים/לום 2 h לשעות היום.
  • שלמות ב-99. 5%, תוקף (מזימה) ו-99. 9%.

4) הורדות מצטברות ומרכז לבקרת מחלות

גישות:
  • CDC (Change Data Capture): Dabezium/log recoveration # Bronze # grounds in Silver.
  • סימן מים בזמן: 'עדכן _ at> max_loaded_ts'.
  • השוואה: md5 (שורה) לגילוי שינוי.
  • Upsert/Merge: עדכוני כסף/זהב אידמפוטנטים.
מיזוג לדוגמה (דלתא/קרחון):
sql
MERGE INTO silver. payments AS s
USING staging. payments_delta AS d
ON s. transaction_id = d. transaction_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;

5) SCD (היסטוריזציה מדידה)

SCD I: כתיבה-יתר (כתיב, תיקונים קטנים).
SCD II: היסטוריה מלאה ('valid _ from/valid _ to/is _ current').
SCD III: ”לפני/אחרי” להשוואות קצרות.

SCD II (דוגמה):
sql
MERGE INTO dim. users_scd t
USING stage. users u
ON t. user_pseudo_id = u. user_pseudo_id AND t. is_current = TRUE
WHEN MATCHED AND (t. country <> u. country OR t. rg_status <> u. rg_status)
THEN UPDATE SET t. is_current = FALSE, t. valid_to = CURRENT_TIMESTAMP
WHEN NOT MATCHED
THEN INSERT (user_pseudo_id, country, rg_status, valid_from, valid_to, is_current)
VALUES (u. user_pseudo_id, u. country, u. rg_status, CURRENT_TIMESTAMP, NULL, TRUE);

6) מילוי גב עיבוד מחדש

הילוך אחורי: מילוי ראשוני/הילוך אחורי היסטורי.
עיבוד מחדש: חישוב מחדש של חלונות לאחר עריכת מידע לוגי/תיקון.

עקרונות:
  • אידמפוטנטיות (MERGE/upsert), אידמפוטנטיות בברונזה.
  • מסע בזמן לריצות חוזרות של תמונות מטא-נתונים.
  • רכסי הגבלה, מכסות ועבודות תחרותיות.
  • תיעוד: פנקס עם שלבים וקריטריונים להשלמה.

7) דוגמנות שכבה

ברונזה:
  • Append-only, ”event _ date”, ”שיפוט”, מחיצות ”דייר”.
  • אנחנו מאחסנים את המטען המקורי (עבור זיהוי פלילי), לתקן ”בליעה _ at”.
כסף:
  • נורמליזציה וסטנדרטיזציה: FK/ספריות, dedup, FX/timezones.
  • טבלאות עובדתיות/ממדיות (3NF/BCNF), SCD עבור ממדי מפתח.
זהב:
  • חנויות דחויות עבור BI/רגולציה/מימון, מוכנות SLA.
  • התממשות של אגרגטים; חפצי יצוא בלתי ניתנים לייצוא (חשיש + תולעת).

8) איכות נתונים (DQ-as-code)

דוגמה לחוקי YAML עבור סילבר:
yaml table: silver. payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive type: range column: amount_base min: 0. 01 severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
severity: major
- name: unique_tx type: unique columns: [transaction_id]
severity: critical
- name: fk_user type: foreign_key column: user_pseudo_id ref_table: dim. users_scd severity: critical

מדיניות תגובה: critical laught job + DLQ; מייג 'ור/מינור תג + דיווח.

9) שכבה סמנטית ודיווח

הגדרות מאוחדות של מטריות (GGR/NGR, ARPU, Retition) במאגר סמנטי-שכבתי/מטרי.

מדדי ורסיונינג; אינטגרציה עם חבילות BI/ייצוא

דיווחים: CSV/JSON/PDF + Sha256, הורד את הלוג והחזק משפטי במידת הצורך.

10) פרטיות, תושבות, אבטחה

מזעור PII: פסאודונימיזציה של משתמשים; מיפוי בלולאה מוגנת נפרדת.
תושבות נתונים: ספריות/מפתחות נפרדים עבור EEA/UK/BR; איסור על הצטרפות אזורית ללא עילה חוקית.
הצפנה: TLS במעבר; KMS/CMK at-rest; בקרת ייצוא.
DSAR/RTBF: תחזיות חישוביות, עריכה סלקטיבית; ביקורת גישה.
ארכיון תולעת לחפצים רגולטוריים.

11) ביצועים ועלות

מחיצה לפי תאריך/שוק/דייר; הזמנה/אשכול לפי תחזיות תכופות.
פורמטים: טבלאות פרקט + חומצה; כיווץ/סטטיסטיקה, אופטימיזציה/ואקום.
התממשות: צבירה יציבה בזהב; להימנע מעבודות ”מונוליטיות”.
מכסות/תקציבים: chargbacking by team; גבולות אחוריים/בקשות כבדות.
לוח זמנים: חלונות עמוסים נמוכים (לילה/סוף שבוע), סדר עדיפויות.

12) יכולת תצפית וניהול

מדדי צינור: משך, אחוזי הצלחה, רטריאות, שורות מעובדות, עלות/שאילתה.
מטרי DQ: שלמות, תוקף, ייחודיות, שגיאות FK, סחף.
מפת חום טרייה: על ידי תחום ושוק; לוחות מחוונים של SLA.
שושלת היוחסין: מקורות הברונזה לדיווחים; ניתוח השפעה לפני שינויים.
תקציבי SLO, השפלת DQ, עיכובים, צמיחה בעלויות.

13) דוגמאות SQL/מודל

נורמליזציה של המטבע (כסף):
sql
CREATE OR REPLACE TABLE silver. payments AS
SELECT p. transaction_id,
p. user_pseudo_id,
p. currency,
p. amount_orig,
r. rate AS fx_rate_used,
p. amount_orig r. rate AS amount_base,
p. market,
CAST(p. event_time AS TIMESTAMP) AS event_time
FROM bronze. payment_events p
JOIN dim. fx_rates r
ON r. date = DATE(p. event_time)
AND r. ccy_from = p. currency AND r. ccy_to = 'EUR';
תצוגה יומית של GGR (זהב):
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;
בקרת השלמות (DQ SQL):
sql
SELECT market, event_date, COUNT() AS n
FROM silver. fact_bets
GROUP BY market, DATE(event_time) AS event_date
HAVING n = 0;

14) תהליכים ו ־ RACI

R (אחראי): Data Engineering (DAG ', Silver/Gold models), Data Platform (infra, circuit register, DQ).
ראש מחלקת נתונים/מידע ראשי.
C (ייעוץ): ציות/Legal/DPO (PII/Reservation), פיננסים (FX/GGR), סיכון (RG/AML), SRE (SLO/GGR).
אני (מושכל): BI/מוצר/שיווק/מבצעים.

15) מימוש מפת דרכים

MVP (4-6 שבועות):

1. Bronze/Silver (תבנית חומצה), CDC/gurments עבור 2-3 תחומים.

2. DQ-like-קוד: 10-15 כללים לתשלומים/משחק + אימות CI.

3. תצוגת הזהב הראשונה (GGR Daily) עם SLA עד 06:00; דיווח על ייצוא + חשיש.

4. רעננות/שלמות/לוחות מחוונים, התראות בסיסיות.

שלב 2 (שבועות 6-12):
  • SCD II (ראשי תיבות של SCD II); הרחבת תחום.
  • שכבה סמנטית של מדדים; בדיקות עם OLTP/ספקים (דיוק).
  • נוהלי חזרה/עיבוד מחדש, ניתוח שושלות והשפעה, Regionalization (EEA/UK).
שלב 3 (12 + שבועות):
  • סימולציה אוטומטית של שינויים (run-run), תקציבים/מכסות, chargback.
  • תיעוד אוטומטי (דפי מוצר נתונים), תרגילי DR וחזרה בזמן.
  • אופטימיזציה עלויות (התקבצות, התממשות, TTL, ואקום).

16) רשימת בדיקות לפני המכירה

[ חוזים ותוכניות ] ברישום, מבחני תאימות הם ירוקים.
[ ] הורדות אינקרמנטליות/CDC עובד, MERGE הוא אידמפוטנטי.
[ ] כללי DQ פעילים; □ כשל קריטי + DLQ; לדווח על הפרות.
[ ] SLA/רעננות/לוחות מחוונים מלאים; התראות מוכנות.
[ ] PII/DSAR/RTBF/Legal Hold אושר על ידי Ligal/DPO.
[ ] Runbook "ו-backfill/עיבוד מחדש/DR נבדק.
[ ] עלות תחת שליטה (עלות/שאילתה, עלות/GB, מכסות).

17) אנטי דפוסים ואיך להימנע

דקירות לילה מונוליטיות: להתפצל לצעדים עצמאיים, מקבילים על ידי מפלגות.
טעינה מלאה ללא צורך: השתמש במרווחים/CDC/מיזוג.
PII משתלב באנליטיקה: לשמור על מפות נפרדות, ליישם CLS/RLS.
אין DQ/שושלת: הזן DQ-as-code ומקור עקבות.
מילוי ידני: אוטומט ותיעוד, הגבלת טווח.
עלות בלתי ניתנת לשליטה: התקבצות, התממשות, מדיניות שימור.

18) גלוסרי (קצר)

CDC - שינויים לכידה מ OLTP.
SCD - לאט לאט משתנה מדידות (I/II/III).
אגם לייקהאוס - אגם נתונים + טבלאות חומצה.
מיזוג/אפסרט - פעולות עדכון אידמפוטנטיות.
מסע בזמן - קריאת גרסאות היסטוריות של שולחנות.
תולעת - אחסון בלתי משתנה של חפצים.

19) השורה התחתונה

עיבוד אצווה הוא משמעת של צפייה, רבייה, וצינורות חינם. על ידי ציות לעקרונות של סכימה-ראשונה, שינויים/CDC, היסטוריזציה של SCD, DQ-as-code, תצפית וכלכלה מודעת, תקבלו תצוגות ודוחות יציבים של זהב, המאומתים על ידי נצנצים ומוכנים לביקורת בכל עת.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.