אגם דאטה ואחסון מרכזי
(סעיף: טכנולוגיה ותשתיות)
תקציר
דאטה לייק (באנגלית: Data Lake) היא שכבה בסיסית של אחסון מרכזי של חומרי גלם ונתונים מאוחדים. עבור iGaming, היא מקבלת אירועי הימורים/תשלום/רישום משחקים, העלאות משתייכות, CDC מ-OLTP ונותנת אותם לאנליטיקה, אנטי הונאה, CRM ו-BI. פרקטיקה מודרנית - Lakehouse: פורמטי עמודה פתוחה + ACID table layer + directory + transactions/data grases. המפתח להצלחה הוא הדיסציפלינה של מזימות ומחלקות, ניהול עלויות, אבטחת מח "ש ותרבות תפעול קפדנית (DQ, שושלת, DR).
תפקידו של דאטה לייק בפלטפורמת iGaming
נקודת אמת אחת לאנליטיקה: אחסון נתונים גולמיים ומטוהרים ללא קשר למקור ולפורמט.
גמישות: תמיכה באצווה וזרימה (CDC/מחברים, זרמי אירועים).
אבולוציה: מברונזה גולמית לתיקים עסקיים של כסף וזהב.
חלוקת אחריות: שירותי ייצור כותבים לצמיג/היערכות, אנליטיקה/ML צורכת משכבות אגם.
מודלים ארכיטקטוניים: Lake vs. Lakehouse
אגם נתונים (S3/ADLS/GCS + Parquet/ORC): סכימה על קריאה, אחסון זול, פורמטים גמישים.
Lakehouse (דלתא/קרחון/האדי מעל פרקט): עסקאות חומצה, התמזגות, מסע בזמן, קבצים קומפקטיים, ואקום, אינדקס/קיבוצים.
פרקטיקה: Lakehouse מועיל עבור iGaming בתור השכבה העיקרית, ו-OLAPs חיצוניים (ClickHouse/BigQuery/Snowflake/Pinot) בתור פתחי תצוגה ומנועים מיוחדים.
מודל שכבות מדליון
ברונזה (Raw/Staging): קבצים גולמיים ממקורות (CDC, מצנחי יומן, CSV). אימות מינימלי, ”כמו שהוא”.
כסף (Conformed): ניקוי/dedup, נורמליזציה של מטבעות/אזורי זמן, הקלדה, מדידות SCD, מפתחות עקביים.
Gold (Marts/Servition): אגרגטים עבור GGR/NGR/LTV/Reservation, חנויות מותאמות עבור BI/CRM/אנטי-הונאה.
TTL: אגרסיבי על ברונזה, מתון על כסף, ארוך טווח על יחידות זהב.
פורמטים ושכבות שולחן
טור: Parquet (תקן דה פקטו), ORC.
פורמטי שולחן פתוחים (חומצה):- אגם דלתא - עסקאות, 'מיזוג', מסע בזמן, אופטימיזציה/ואקום, Z-סדר.
- קרחון אפאצ 'י - שולחנות עם מניפסטים/תצלומים, מחיצות נסתרות, ”מיזוג/מחק/עדכון”, מסע בזמן.
- אפאצ 'י האדי - העתק-על-כתיבה/מיזוג-על-קריאה, אופטימיזציה-אפאצ' י, תמציות אינקרמנטליות.
- בחר בהתבסס על המערכת האקולוגית ועל הדרישות להזרמת/זרימה/גמישות של התפתחות התוכניות.
קטלוג ומטאסטור
ספרייה בודדת (Hive Metastore/Unity/Dlue/Platform Directories) מאחסנת סכמות, מסיבות, גרסאות, זכויות.
דרישות: עקביות עסקית עם שכבת שולחן, תמיכה במנועים מרובים (Spark, Trino/Presto, Flink, dbt), ביקורת/שושלת.
סכמות ואבולוציה
חוזה סכימה: תיקון שדות חובה, סוגים, סמנטיקה; מקורות וסיונינג (”schema _ version”).
אבולוציה: הוספת שדות אופציונליים, איסור על שבירת שינויים ללא נדידה; תוכניות בדיקה אוטומטית בצינורות.
מקטע PII: שדות רגישים - לטורים/שולחנות נפרדים עם הצפנה וזכויות נפרדות.
נתונים מחיצה ופריצה החוצה
תאריך/שעה - מפתח בסיס לאירועים; שדות אופציונליים: "קאנטרי", "מוצר", "דייר _ id'.
סגנון כוורת: 's3 ://אגם/ברונזה/תשלומים/מקור = pspa/dt = 2025-11-05/שעה = 13/חלק-0001. פרקט '.
התקבצות/מיון: Z-order/Mind keys על ידי שדות מסוננים תכופות (player_id, country).
גודל הקובץ: כוון ל ־ 128 ־ 1024 MB; הימנע מ ”קבצים קטנים” (ראה להלן).
עמודות וירטואליות (קרחון/דלתא) למחיצה נסתרת.
קבצים קטנים ובעיית דחיסה
מקורות מזרימים נתחים קטנים.
פתרון: אופטימיזציה מחזורית/כפייה (collesce), לוח זמנים של משימות כפייתיות, צרור מיקרו-צרור בבליעה, 'AutoOptimize' (אם הוא זמין).
מדיניות מיזוג-על-קריאה נגד העתק-על-כתיבה היא איזון בין כתיבה לאטה ומהירות קריאה.
אצווה, זרם, מרכז לבקרת מחלות
CDC מ-OLTP (דבזיום/מחברים) # ברונזה (רעננות דקה).
זרם (Kafka/Flink/Spark Structured Streaming) # כסף/זהב באופן הדרגתי (upsert/merge).
Batch (דו "חות שותף/CSV/JSON) - באמצעות" קולטים "עם מניפסטים, שליטה בשכפולים באמצעות Chectsum.
מפתחות (באנגלית: Idempotency: keys, idempotency_key), dedup by (key, ts), ”סימני מים” עבור רשומות שהגיעו מאוחר יותר.
איכות נתונים (DQ) ושושלת
בדיקות DQ: שלמות, ייחודיות של מפתחות, טווחים, שלמות ייחוס (רשימות מדינה/מטבע), חוקים עסקיים (GGR 0).
לינאז ': גרף של תלות מהדו "ח למקור, גרסה של קוד המודל וצילום של הטבלה.
סכימה בקרה: אוטומטי אחורה/קדימה-compat בדיקות שחוסמות ”שבירה” שינויים.
הורדות ביקורת: מי/מתי/כמה, חבורות דחויות, מגשים מחדש.
שירות וגישה
מנועי SQL: Spark/Trino/Presto עבור ad-hoc וטרנספורמציות; DBT לדוגמניות ELT.
זמן-אמת/כמעט-בזמן-אמת: Pinot/Druid/ClickHouse כחנויות; האגם הוא מקור דרך כיור אינקרמנטלי.
שיתוף נתונים: שיתוף טבלאות/תמונות לפקודות חיצוניות ללא עותקים (אם הן נתמכות על ידי הפורמט).
אבטחה, PII ורב-דירות
הצפנה: at-rest (KMS) ו-in-transit (TLS).
IAM/RBAC/ABAC: תפקידים בספרייה/טבלה/עמודה/רמת שורה (מיסוך, מדיניות דינמית).
מקטע אחר אזור (EU/Turkey/Latam localization): בידוד של דליים ובריכות חישוב.
Multi-tensancy: name-space/directories and path prefixes, filters by 'terant _ id', optional-row-level policy.
ביקורת גישה: רישומי קריאה/שינוי של metadata, שימור ויומנים שאינם ניתנים לשינוי.
ניהול עלויות
שיעורי אחסון: חם (לרוב קריא) בכיתה סטנדרטית, ארכיון - בשיעורי קור/קרחון עם מדיניות TTL.
מחיצות/אשכולות להפחית סריקות = = = פחות $ $.
חנויות ממומשות לדיווחים יקרים; מטמון תוצאות דו-פעמיות.
דחיסה ו ”גודל קובץ נכון” - פחות metadata ו ־ I/O.
מכסות ותקציבים: מגבלות על מחשוב אשכולות/עבודות, דוחות עלות על נתונים/צוות.
הסרת אשפה: ”ואקום/שכתוב מחדש” בפורמטים של שולחן, TTL ברונזה.
DR והתרבות
טבלת מסע בזמן ויסות וקטלוג תמונות.
שכפול חוצה-אזור של דליים ומטא-נתונים.
PITR: אחסון של יומני עסקאות שולחן (דלתא/קרחון/האדי) ויומני צינור.
יום המשחק: תרגילי התאוששות רגילים והחלפת אזורים.
תצפית ו SLO
רעננות: ברונזה, 5 דקות, כסף, 15-30 דקות, זהב, 60 דקות (דוגמה).
מטריצות: נפח/מספר הקבצים, גודל הפרקט הממוצע, זמן סריקה, נתח של חבורות שלא נענו, תדר דחיסה, עלות/תאריך, שגיאות DQ, נתונים מאוחרים.
התראות: נחשול קבצים קטנים, גידול עלויות, פיגור p95/p99, הפרת DQ/scheme, lag stream-blue.
שמות מוסכמות ומסלולים (תבנית)
s3://<lake>/<layer>/<domain>/<dataset>/
source=<sys>/ # для Bronze dt=YYYY-MM-DD/
hour=HH/
country=XX/
שמות dataset: ”הימורים _ raw”, ”תשלומים _ cdc”, ”players _ silver”, ”mart _ gr _ daily”.
עמודות metadata: "inbleget _ ts'," source "," schema _ version "," trace _ id', "terant _ id'.
דוגמאות (כלליות)
1) קרחון: שולחן כסף עם צד מוסתר בתאריך
sql
CREATE TABLE silver. bets (
bet_id BIGINT,
player_id BIGINT,
country STRING,
stake DECIMAL(18,2),
win DECIMAL(18,2),
event_ts TIMESTAMP,
ingest_ts TIMESTAMP,
schema_version INT
)
PARTITIONED BY (days(event_ts))
TBLPROPERTIES ('format-version'='2');
2) דלתא: עצב אינקרמנטלי מהמרכז לבקרת מחלות
sql
MERGE INTO silver. players t
USING bronze. players_cdc s
ON t. player_id = s. player_id
WHEN MATCHED THEN UPDATE SET
WHEN NOT MATCHED THEN INSERT;
3) מדיניות TTL לברונזה (רעיון)
bronze/: keep 30 days silver/: keep 365 days (non-PII), 90 days (PII masked)
gold/marts/: keep 2–3 years (aggregated)
רשימת יישומים
1. בחר את תבנית הטבלה (דלתא/קרחון/האדי) והספרייה; ליישר עם מנועים (Spark/Trino/Flink/dbt).
2. הגדר שכבות מדליון, חוקי טי-טי-אל ואחריות קבוצתית.
3. סכימה לכידה חוזים, אבולוציה שליטה, קטעי PII, והצפנה.
4. עיצוב Lay-out: חלקים, מיון מפתחות, גודל קובץ יעד; אפשר דחיפה.
5. הגדרות בלע (CDC/זרם/אצווה) עם אידמפוטנטיות ושכפול.
6. אפשר DQ/lineage, קטלוג metadata, וביקורת.
7. הגדר רעננות/עלות SLOs, לוחות מחוונים של מדטים והתראות.
8. ארגן ד "ר: תמונות/שכפול/התאוששות + תרגילים רגילים.
9. התקן שמות ומסלולים, עמודות meta ("inbleget _ ts'," source "," schema _ version ").
10. תביא תצוגות זהב ומגיש בזמן אמת למנועי OLAP/RT הנכונים.
אנטי דפוסים
”תיק” אחד נפוץ ללא שכבות ותוהו ובוהו TTL.
חלוקת זמן בלבד שלא כולל מדינה/מוצר * סריקות כבדות.
אשכולות שיוצרים אלפי קבצים/שעה קטנים ללא דחיסה.
חוסר שליטה בתכניות ו DQ = ”שבירת” שינויים וחוסר אמון בדיווחים.
ערבוב מח "ש עם תצוגות זהב ללא הסוואה/הפרדת זכויות.
הארדקוד של זכויות גישה ברמה של דליים במקום ספרייה ומדיניות טבעית.
תקציר
אגם דאטה מודרני (באנגלית: Modern Data Lake for iGaming) הוא בית לייקהאוס עם תבנית שולחן פתוחה, קטלוג יחיד ודגם מדליון. הדיסציפלינה של תוכניות/צדדים, דחיפה נגד קבצים קטנים, DQ/lineage, אבטחת PII והיגיינת עלויות הופכות את שכבת האגם ליסוד בר-קיימא: זול לאחסון, מהיר לקריאה, צפוי ב-SLO ומוכן ל-DR יסודות כאלה לטורניר פסגות ותומך הן באצוות אנליזה והן וכמעט בזמן אמת.