GH GambleHub

Αποθήκες δεδομένων και μοντέλα OLAP

(Τμήμα: Τεχνολογία και Υποδομές)

Σύντομη Περίληψη

Αποθήκη δεδομένων (DWH) - βασικό επίπεδο ανάλυσης του iGaming: εκθέσεις προς τις ρυθμιστικές αρχές, κερδοφορία ανά προϊόν/αγορά, LTV κλάσης, ανάλυση κατά της απάτης, κατάτμηση CRM και ταμπλό σε πραγματικό χρόνο. Η βιώσιμη DWH βασίζεται σε ένα σαφές μοντέλο δεδομένων (Star/Snowflake/Data Vault), ισχυρή ολοκλήρωση (ETL/ELT + CDC), στοχαστική απόδοση (κινητήρες στήλης, μέρη, MV), αυστηρή σημασιολογία μετρήσεων, ασφάλεια/PII και διαχείριση κόστους.

Αρχιτεκτονικές προσεγγίσεις

Classic DWH (Kimball vs Inmon)

Kimball (Διάστατη/Αστρική/Χιονονιφάδα): περιπτώσεις ταχείας αναφοράς. εστίαση σε γεγονότα και διαστάσεις, ιστορικό SCD. Γρήγορη τιμή χρόνου.
Inmon (Εταιρικό Εργοστάσιο Πληροφοριών): κανονικοποιημένος πυρήνας + καταστήματα. βαρύτερο χρόνο, αλλά αυστηρά και κεντρικά.

Θησαυροφυλάκιο δεδομένων 2. 0

Hubs-Links-Satellites: Ένα κλιμακωτό «ακατέργαστο» μοντέλο ολοκλήρωσης πηγής και ελέγχου αλλαγής. Αστρικά καταστήματα χτίζονται στην κορυφή.

Λίμνη δεδομένων/Λίμνη

Λίμνη δεδομένων: ακατέργαστα αρχεία (Parquet/ORC) + καταλόγους (Hive/Glue/Unity/Metastore).
Lakehouse: μονό στρώμα για παρτίδα/ρεύμα, πίνακες ACID (Delta/Iceberg/Hudi), ταξίδι στο χρόνο, upsert/συγχώνευση, συμπαγή αρχεία, Z-order/Clustering.

Μενταγιόν (χάλκινο-ασημένιο-χρυσό)

Χάλκινο: ακατέργαστα δεδομένα (ακατέργαστα) + CDC.
Άργυρος: καθαρισμένος και σύμφωνος.
Χρυσός: επιχειρηματικές υποθέσεις/μετρήσεις/κύβοι.
Κατάλληλο για υβρίδια (Kafka → Bronze. Silver в Lakehouse, Χρυσός в ClickHouse/BigQuery/νιφάδα χιονιού).

Μοντέλα OLAP: Αστέρι, νιφάδα χιονιού, θησαυροφυλάκιο δεδομένων

Star Schema (star)

Πίνακας στοιχείων: συναλλαγές (επιτόκια, καταθέσεις, συνεδριάσεις).
Διαστάσεις: παίκτης, παιχνίδι, πάροχος, ημερομηνία/ώρα, γεω, κανάλι έλξης.
Pros: Απλός Joynes, προβλεπόμενη απόδοση.

Νιφάδα χιονιού

Ομαλοποίηση της διάστασης (ιεραρχίες χώρας/περιφέρειας/πόλης, ιεραρχίες προϊόντων).
Υπέρ: λιγότερη επικάλυψη. μείον - περισσότερα joynes.

Θησαυροφυλάκιο δεδομένων

Προσθέτουμε ωμές αλλαγές στο DV (έλεγχος, πλήρης αναπαραγωγιμότητα), κατασκευάζουμε παράθυρα αναφοράς όπως το Star/Snowflake.

Ολοκλήρωση: ETL/ELT, CDC, αργές αλλαγές

Αγωγός

Outbox/CDC από OLTP (Postgres/MySQL) → Kafka/ → Bronze connectors.
ELT: καθαρισμός, αφαίρεση, ομαλοποίηση στο ασήμι.
Επιχειρηματική λογική και συγκεντρώσεις σε χρυσό/καταστήματα.

SCD (Αργές μεταβαλλόμενες διαστάσεις)

Τύπος 1-Overwrite (για μη ουσιώδη πεδία).
Τύπος 2: ιστορικότητα (χρονολογημένες εκδόσεις) - πρότυπο για προφίλ/κανάλια/τιμές.
Τύπος 3: αποθήκευση ζεύγους τιμών (σπάνια).

Παράδειγμα SCD2 (SQL, γενική προβολή):
sql
-- insert new dimension version
INSERT INTO dim_player (player_sk, player_id, country, valid_from, valid_to, is_current)
SELECT gen_sk(), s. player_id, s. country, now(), '9999-12-31', true
FROM staging_player s
LEFT JOIN dim_player d ON d. player_id = s. player_id AND d. is_current = true
WHERE d. player_id IS NULL OR d. country <> s. country;

-- closing the old version
UPDATE dim_player d
SET valid_to = now(), is_current = false
FROM staging_player s
WHERE d. player_id = s. player_id AND d. is_current = true AND d. country <> s. country;

Σημασιολογικό στρώμα και «αληθείς» μετρήσεις

Εισάγετε ένα μόνο σημασιολογικό στρώμα: GGR, NGR, Καθαρές Καταθέσεις, ARPPU, LTV, Churn, Contention Cohorts ορισμούς.
Μετρήσεις όπως ο κώδικας (dbt metrics/Look ML/Semantic Layer) → τους ίδιους τύπους σε όλες τις αναφορές.
Ημερολόγιο: πίνακας ημερομηνίας/ώρας με χαρακτηριστικά TZ/περιφέρειες/Σαββατοκύριακα/εκστρατείες.

Θησαυροφυλάκια και κινητήρες: επιλογή προφίλ

Στήλη και νέφος DWH

ClickHouse: εξαιρετικά γρήγορες σαρώσεις/συγκεντρώσεις, υλοποιημένες αναπαραστάσεις, προβολές. είναι διαφορετική για εκδηλώσεις/τηλεμετρία και εκθέσεις μάρκετινγκ.
BigQuery: serverless, κλίμακα, αυτόματα caches/clusters. τιμή ανά σάρωση· βολικό για μικτά φορτία και ad-hoc.
Νιφάδα χιονιού: κλάδος υπολογισμού/αποθήκευσης, κατά παραγγελία συμπλέγματα, ταξίδι στο χρόνο. διαφανείς σε διάφορες ομάδες.
Redshift/Vertica/Pinot/Druid: επιλογές για OLAP/σε πραγματικό χρόνο.

Ρύθμιση προφίλ

Διαχωρισμός ανά ημερομηνία/περιφέρεια/κανάλι.
Ομαδοποίηση/διαλογή με φίλτρο/πλήκτρα joyn.
Συμπίεση και κωδικοποίηση με λεξικά.
Προγνώσεις (rollup, κύβοι), υλοποιημένες απόψεις.
Περίπου λειτουργίες (HyperLogLog/approx_distinct) για φτηνές αξιολογήσεις.

Μηχανική επιδόσεων

Κατάτμηση και ομαδοποίηση

Το μέρος είναι το όριο του διαμερίσματος. Πάρτι ημέρας/ώρας για εκδηλώσεις.
Συσπείρωση (ταξινόμηση κλειδιών/σειρά Z) - επιταχύνει εύρος και ενώνει.

Υλοποιημένες απόψεις (MV)

Προκαταρκτική έκθεση GGR/NGR ανά ημέρα/χώρα/προϊόν.
Πρόσθετη ενημέρωση από τη ροή CDC.

Παράδειγμα ClickHouse (MV συγχώνευσης):
sql
CREATE MATERIALIZED VIEW mv_ggr_daily
ENGINE = SummingMergeTree()
PARTITION BY toYYYYMMDD(ts)
ORDER BY (country, product_id, toDate(ts)) AS
SELECT toDate(ts) AS d,
country,
product_id,
sum(stake) AS stake_sum,
sum(win)  AS win_sum,
sum(stake - win) AS ggr
FROM bets
GROUP BY d, country, product_id;

Στοιχειώδη μοντέλα (dbt/ELT)

Στρατηγικές 'εισάγετε _ overwrite' by party, 'merge' by CDC keys, 'watermark' by 'updated _ at'.

Ενταξιακές στρατηγικές

Αντίγραφο των μετρήσεων σε κάθε τμήμα παρτίδας (denorm).
Εκπομπή μικρών dims. ανακατεύετε μεγάλα γεγονότα ταξινομημένα ανά κλειδί.

Κόστος: έλεγχος και βελτιστοποίηση

BigQuery/Snowflake: όριο μεγέθους σάρωσης (μέρη σχεδιασμού/συστάδες), ενεργοποιήστε το αποτέλεσμα cache/υλοποιημένη θέα, περιορίστε BI auto-quests.
ClickHouse: μέγεθος παρτίδας, συχνότητα merjey, προϋπολογισμός αποθήκευσης (TTL για πρώτες εκδηλώσεις, οι συγκεντρώσεις είναι ανθεκτικές).
Η σημασιολογία μετρικών μειώνει τον «διπλό» υπολογισμό.
Κλάδεμα δεδομένων: διατήρηση για το χάλκινο, συγκέντρωση για το χρυσό.

Ποιότητα δεδομένων (DQ), κατάλογος, γενεαλογία

Έλεγχοι DQ: πληρότητα, μοναδικότητα, εύρος τιμών, επιχειρηματικοί κανόνες (για παράδειγμα, GGR ≥ 0 σε συγκεντρωτικά μεγέθη).
Κατάλογος δεδομένων & γενεαλογίας: περιγραφές πίνακα/πεδίου, ιδιοκτήτες, ταξινόμηση PII, αναφορά-προς-πηγή ιχνηλάτηση.
Συστήματα ελέγχου: σύμβαση για γεγονότα/CDC, καταχωρίσεις για ασυμβίβαστες αλλαγές.

Ασφάλεια, συμμόρφωση και πολυπλοκότητα

Κατάτμηση PII: μεμονωμένες ζώνες, κάλυψη/ψευδωνυμοποίηση, στήλες με κρυπτογράφηση KMS.
RBAC/ABAC: ρόλοι σε επίπεδο έργου/σχήματος/πίνακα/σειράς (RLS), κύλινδροι για «ανάγκη γνώσης».
Εντοπισμός δεδομένων: περιφερειακοί κουβάδες/αποθήκες (EU/TR/LATAM).
Έλεγχος πρόσβασης: ποιος διάβασε/άλλαξε καταστήματα και μοντέλα.

DR, αντίγραφα ασφαλείας και αναπαραγωγιμότητα

Έκδοση κωδικού δεδομένων (dbt/git), Dev/QA/Prod περιβάλλον.
Στιγμιότυπα μετάστορα/καταλόγου + πίνακες ταξιδιού στο χρόνο.
στρώματα κατακράτησης/TTL Bronze/Silver/Gold· εξαγωγή κρίσιμων καταστημάτων.
Ημέρα παιχνιδιού: αποκατάσταση εκθέσεων, έλεγχος της ακεραιότητας των μετρήσεων.

Σε πραγματικό χρόνο και υβριδικά καταστήματα

Stream-to-OLAP: Kafka-ClickHouse/Pinot/Druid για μικρές προβολές.
Υλοποιημένες προβολές + CDC για επικαιροποιήσεις σχεδόν online (5-15 λεπτά).
Το σημασιολογικό στρώμα παραμένει το ίδιο: οι μετρήσεις είναι πανομοιότυπες σε πραγματικό χρόνο και παρτίδα.

GGR ανά ημέρα και ανά χώρα παράδειγμα επίδειξης (Generic SQL)

sql
CREATE TABLE fact_bets (
bet_id   BIGINT,
player_sk BIGINT,
game_sk  BIGINT,
country_sk BIGINT,
stake   DECIMAL(18,2),
win    DECIMAL(18,2),
ts     TIMESTAMP
) PARTITION BY DATE(ts);

CREATE TABLE dim_country (
country_sk BIGINT PRIMARY KEY,
iso2    STRING,
region   STRING,
valid_from TIMESTAMP,
valid_to  TIMESTAMP,
is_current BOOL
);

-- Showcase
CREATE MATERIALIZED VIEW mart_ggr_daily AS
SELECT
DATE(ts) as d,
c. region,
SUM(stake) AS stake_sum,
SUM(win)  AS win_sum,
SUM(stake - win) AS ggr
FROM fact_bets f
JOIN dim_country c ON c. country_sk = f. country_sk AND c. is_current
GROUP BY d, c. region;

Κατάλογος ελέγχου εφαρμογής

1. Ορίστε πηγές και πεδία, καθορίστε το μετρικό λεξικό.
2. Επιλέξτε μοντέλο: DV για ακατέργαστα/ελεγμένα στρώματα + Αστέρι για περιπτώσεις απεικόνισης.
3. Μέρη σχεδιασμού/ομάδες για βασικά ερωτήματα και παράθυρα.
4. Ρύθμιση CDC/ELT, πολιτική SCD και υποκατάστατα κλειδιά.
5. Εισάγετε ένα σημασιολογικό στρώμα (μετρήσεις ως κωδικός) και ένα ημερολόγιο ημερομηνίας/ώρας.
6. Δημιουργία MV/προσυναρμολογήσεων για δαπανηρές εκθέσεις.
7. Ενεργοποίηση ελέγχου DQ/καταλόγου/γραμμής και σχήματος.
8. Ορισμός RBAC/PII/τοπικοποίηση, κρυπτογράφηση, έλεγχος.
9. Σύσταση παρακολούθησης p95/p99, κόστος, προειδοποιήσεις για υποβάθμιση και υπέρβαση.
10. Τακτικές ασκήσεις DR και αναπαραγωγιμότητα περιβάλλοντος.

Αντι-μοτίβα

«Ένα γιγαντιαίο γεγονός χωρίς πάρτι» → σαρώσεις τεραμπάιτ και η βαθμολογία αυξάνεται.
Ασυνεπείς ορισμοί των μετρήσεων στα διάφορα ταμπλό.
Έλλειψη SCD2 όπου οι επιχειρήσεις απαιτούν ιστορικότητα.
Πρόωρη ομαλοποίηση των μετρήσεων: περιττές αναφορές και αργές αναφορές.
Ανεπεξέργαστα δεδομένα χωρίς ελέγχους DQ και γενεαλογικές αναφορές → «τίποτα».
Απουσία άδειας/TTL → αποθήκευση απορριμμάτων και έκρηξη κόστους.

Περίληψη

Αξιόπιστο iGaming-DWH είναι ένα σαφές μοντέλο (DV→Star), ένα ενιαίο μετρικό λεξικό, σωστές κατατμήσεις/συστάδες, υλοποιημένα καταστήματα, αυστηρή DQ/γενεαλογία, και RBAC/PII/τοπικοποίηση. Προσθήκη υβριδικής ροής για τη φρεσκάδα, την πειθαρχία με γνώμονα τις ELT και την αξία - και δημιουργία μιας βιώσιμης πλατφόρμας ανάλυσης που θα κλιμακώνεται στα τουρνουά, στις κανονιστικές εκθέσεις και στην ad-hoc έρευνα χωρίς εκπλήξεις στο p99 και στον προϋπολογισμό.

Contact

Επικοινωνήστε μαζί μας

Επικοινωνήστε για οποιαδήποτε βοήθεια ή πληροφορία.Είμαστε πάντα στη διάθεσή σας.

Έναρξη ολοκλήρωσης

Το Email είναι υποχρεωτικό. Telegram ή WhatsApp — προαιρετικά.

Το όνομά σας προαιρετικό
Email προαιρετικό
Θέμα προαιρετικό
Μήνυμα προαιρετικό
Telegram προαιρετικό
@
Αν εισαγάγετε Telegram — θα απαντήσουμε και εκεί.
WhatsApp προαιρετικό
Μορφή: κωδικός χώρας + αριθμός (π.χ. +30XXXXXXXXX).

Πατώντας «Αποστολή» συμφωνείτε με την επεξεργασία δεδομένων.