GH GambleHub

Κανονικοποίηση δεδομένων

1) Σκοπός

Η ομαλοποίηση εξαλείφει τα αντίγραφα και τις ανωμαλίες των ενημερώσεων, θέτει ομοιόμορφους καταλόγους και κλειδιά, κάνει τα δεδομένα συνεπή και φθηνά στη συντήρηση. Στο iGaming, αυτό είναι κρίσιμης σημασίας για τις αναλύσεις GGR/NGR, AML/RG, την υποβολή ρυθμιστικών εκθέσεων, την καταπολέμηση της απάτης και ML.

2) Πού ομαλοποιούμε

Χάλκινο (ακατέργαστο): μη ομαλοποιημένο - αποθήκευση όπως είναι (μόνο προσθήκη) για την εγκληματολογία.
Ασήμι (καθαρό/σύμφωνο): βασική ομαλοποίηση (3NF/BCNF, καταλόγους, κλειδιά, SCD).
Χρυσός (σερβίρισμα): καταστήματα-στόχοι - ελεγχόμενη απομαλοποίηση για ανάγνωση/BI είναι δυνατή.

3) Βασικές αρχές

1. Οι πίνακες Schema-first-All έχουν σαφή σχήματα και κλειδιά.
2. Μονά αναγνωριστικά: 'χρήστης _ pseudo _ id', 'session _ id', 'game _ id', 'provider _ id', 'transaction _ id'.
3. Κοινοί κατάλογοι: νομίσματα, αγορές/δικαιοδοσίες, καταστάσεις KYC/RG, πάροχοι παιχνιδιών, κυκλοφοριακά κανάλια.
4. Χρόνος και νόμισμα: αποθήκευση 'event _ time' (UTC) και κανονικοποιημένο 'ποσό _ βάση' + 'fx _ πηγή'.
5. Εξέλιξη: σημασιολογικές εκδόσεις, μόνο συμβατές αλλαγές χωρίς «σιωπηλά» διαλείμματα.
6. ελαχιστοποίηση PII: χρήστης - μέσω ψευδο-ID; η χαρτογράφηση αποθηκεύεται χωριστά, η πρόσβαση είναι περιορισμένη.

4) Κανονικές μορφές γρήγορα

ατομικές τιμές, χωρίς συστοιχίες σε στήλες (συστοιχίες παιδικοί πίνακες).
Εξαρτάται από ολόκληρο το σύνθετο κλειδί.
: καμία μεταβατική εξάρτηση (το χαρακτηριστικό εξαρτάται μόνο από το κλειδί).
BCNF: κάθε καθοριστικός παράγοντας είναι ένα κλειδί. Χρήση για «πυρήνα» (πληρωμές/παιχνίδι).

Πρακτική: Τα ασημένια μοντέλα πληρωμών και δραστηριοτήτων τυχερών παιχνιδιών διατηρούν τουλάχιστον 3NF. αυστηρότερη BCNF - για βιβλία αναφοράς και πίνακες αναφοράς.

5) Μοντέλο τομέα αναφοράς (Silver)

5. 1 Βιβλία αναφοράς

"dim. χρήστες (ψευδο-ταυτότητα, χώρα, ηλικιακή κλίμακα, ιδιότητες RG).
"dim. παιχνίδια (game_id, provider_id, είδος, RTP, μεταβλητότητα).
"dim. πάροχοι (provider_id, τύπος, άδεια).
"dim. αγορές (κωδικός δικαιοδοσίας, ρυθμιστική αρχή).
"dim. (ημερομηνία, , , επιτόκιο, .

5. 2 Γεγονότα (πίνακες στενών γεγονότων/συναλλαγών)

'fact. πληρωμές "(transaction_id, user_pseudo_id, amount_orig, νόμισμα, amount_base, αγορά, event_time, psp_ref, μέθοδος).
'fact. στοιχήματα (bet_id, user_pseudo_id, game_id, stake_base, stake_ccy, αποτέλεσμα, event_time).
'fact. πληρωμές (payout_id, user_pseudo_id, game_id, amount_base, event_time).

Σύνδεσμοι: στοιχεία ↔ οδηγοί σταθερών κλειδιών. Αντιγράφουμε όλα τα ποσά στο «νόμισμα πηγής» και στη «βάση» (amount_base), καθορίζοντας 'fx _ πηγή'.

6) Αργή μεταβολή των μετρήσεων (SCD)

Τύπος I (αντικατάσταση): ορθογραφία/μη κρίσιμες διορθώσεις.
Τύπος II (ιστορικό): 'έγκυρο _ από/έγκυρο _ σε/είναι _ τρέχον', αλλαγές ελέγχου (για παράδειγμα, αλλαγές κατάστασης RG).
Τύπος III (εναλλακτική στήλη): «πριν/μετά» για σύντομες συγκρίσεις.

Σύσταση: για την RG/KYC/κανάλι μάρκετινγκ - SCD II; για βιβλία αναφοράς θηραμάτων (RTP) - SCD II με επικύρωση πρόσκρουσης.

Παράδειγμα SCD II (απλουστευμένο):
sql
CREATE TABLE dim. users_scd (
user_pseudo_id STRING,
country STRING,
rg_status STRING,
valid_from TIMESTAMP,
valid_to  TIMESTAMP,
is_current BOOLEAN
);

7) Αποπροσανατολισμός και κλειδιά

Υποκατάστατα κλειδιά (BIGINT/UUID) για εσωτερικούς συνδέσμους.
Φυσικά κλειδιά (για παράδειγμα, «συναλλαγή _ id» από PSP) - να επικυρωθούν και να αποθηκευτούν χωριστά.
Dedup by '(event_id, πηγή)' to inchange + business keys in Silver.

Αφαίρεση πληρωμών (παράδειγμα):
sql
CREATE TABLE silver. payments AS
SELECT EXCEPT(rn) FROM (
SELECT p., ROW_NUMBER() OVER (PARTITION BY transaction_id ORDER BY event_time) rn
FROM bronze. payment_events p
)
WHERE rn = 1;

8) Τυποποίηση νομισμάτων και χρονικές ζώνες

'event _ time' - πάντα UTC· για τα παράθυρα καταστημάτων, προσθέστε την τοπική/χρονική ζώνη της αγοράς.
Νομίσματα: «ποσό _ orig» και «ποσό _ βάση» (για παράδειγμα, EUR) + «fx _ πηγή», «fx _ rate _ used».
Ημερήσιος καθορισμός μαθημάτων: "αμυδρός fx_rates' με υπογραφή πηγής και χασίς.

Κανονικοποίηση των ποσών (παράδειγμα):
sql
SELECT t. transaction_id,
t. amount_orig,
t. currency,
r. rate AS fx_rate_used,
t. amount_orig r. rate AS amount_base
FROM bronze. payment_events t
JOIN dim. fx_rates r
ON r. date = DATE(t. event_time) AND r. ccy_from = t. currency AND r. ccy_to = 'EUR';

9) Συνεκτικότητα των βιβλίων αναφοράς

Ενιαίο μητρώο καταλόγου (παιχνίδια, πάροχοι, αγορές, νομίσματα).
Επικυρωτές DQ: 'in _ set', αναφορές FK, μοναδικότητα, συνέπεια της SCD.
Αυτοπαραγωγή «λεπτών» dimencias από εξωτερικές πηγές (πάροχοι παιχνιδιών, χώρες, PSP).

10) Πότε να απομαλοποιήσετε

Η απομαλοποίηση επιτρέπεται σε χρυσό για:
  • σταθερές «ευρείες» εκθέσεις (GGR, εκθέσεις κινδύνου)·
  • Επιτάχυνση ερωτήσεων ΔΙ/ταμπλό
  • realtime storefronts (ClickHouse/Pinot) στο πλαίσιο αναγνώσεων SLA.
Κανόνες:
  • Το ασήμι παραμένει η πηγή της αλήθειας.
  • Απομαλοποιημένα πεδία - υπολογιζόμενα/αντιγραφόμενα από ασήμι. λογική της έκδοσης.
  • Κάθε απομαλοποίηση τεκμηριώνεται και ελέγχεται για ορθότητα.

11) Μοντέλο άστρων και νιφάδων χιονιού

Αστέρι: ένα γεγονός + επίπεδες μετρήσεις - ευκολότερη και ταχύτερη ανάγνωση, ακριβότερη γραφή/αντιστοίχιση.
Νιφάδα χιονιού: οι μετρήσεις είναι ομαλοποιημένες (συνδεδεμένες υποδιατάξεις) - λιγότερα αντίγραφα, πιο σύνθετα ερωτήματα.

Σύσταση: στο Gold πιο συχνά «αστέρι», στο Silver - κανονικοποιημένες «νιφάδες χιονιού».

12) Εξέλιξη των συστημάτων (ασφαλείς αλλαγές)

Αντιστρόφως συμβατές: προσθήκη μηδενικών στηλών. νέες τιμές αναφοράς με σημαίες.
Θραύση: μετονομασία/πληκτρολόγηση/σημασιολογικές μετατοπίσεις - μόνο μέσω '/v2 'και διπλή είσοδος για την περίοδο μετάβασης.
Συμβάσεις: συστήματα JSON/Avro στο μητρώο, δοκιμές συμβατότητας για τους καταναλωτές.

13) Έλεγχοι DQ για ομαλοποίηση

Ελάχιστο σύνολο:
  • Τα κλειδιά είναι μοναδικά: 'συναλλαγή _ id', 'στοίχημα _ id'.
  • Ακεραιότητα αναφοράς: FK στο «αμυδρό».
  • Νομίσματα: 'νόμισμα' από το whitelist, 'fx _ rate _ used' not NULL, 'account _ base> = 0'.
  • Χρόνος: 'event _ time' σε εύλογο παράθυρο. όχι «μελλοντικά» γεγονότα.
  • SCD-σωστή: μη επικαλυπτόμενες σειρές 'έγκυρες _ από/έγκυρη _ έως'.

14) Παραδείγματα μοντέλων SQL

Πραγματικοί συντελεστές (3NF):
sql
CREATE TABLE silver. fact_bets (
bet_id STRING PRIMARY KEY,
user_pseudo_id STRING NOT NULL,
game_id STRING NOT NULL,
stake_ccy DECIMAL(18,2) NOT NULL,
currency CHAR(3) NOT NULL,
stake_base DECIMAL(18,2) NOT NULL,
market CHAR(2) NOT NULL,
event_time TIMESTAMP NOT NULL
);
Αστέρι για GGR (χρυσό):
sql
CREATE VIEW gold. ggr_daily AS
SELECT
DATE(b. event_time) AS event_date,
m. 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. markets m ON m. code = b. market
JOIN dim. games g  ON g. game_id = b. game_id
GROUP BY 1,2,3;

15) Προστασία της ιδιωτικής ζωής και συμμόρφωση

Ψευδωνυμία χρήστη στο Silver. σύνδεση με πραγματικό αναγνωριστικό κωδικό - σε ξεχωριστό προστατευόμενο κύκλωμα.
RLS/CLS και κάλυψη πεδίου (το ηλεκτρονικό ταχυδρομείο/PAN δεν διατίθεται στην ανάλυση).
Περιφερειοποίηση καταλόγων/κλειδιών, έλεγχος DPO για επέκταση σχήματος.

16) Παρατηρησιμότητα και γενεαλογία

Γενεαλογία δεδομένων από το Bronze → Silver → Gold, έκδοση μετασχηματισμών και συμβάσεων.
Μετρήσεις: πληρότητα, εγκυρότητα, σφάλματα FK, αντίγραφα, «τρύπες» εγκαίρως, κόστος αιτήματος.
Ειδοποιήσεις σε διαλείμματα σε καταλόγους και πηγές FX.

17) RACI

R: Μηχανική δεδομένων (μοντέλα Silver/Gold), Πλατφόρμα Δεδομένων (μητρώο κυκλωμάτων, DQ).
A: Προϊστάμενος δεδομένων/Αρχιτεκτονικής.
Γ: Συμμόρφωση/ΥΠΔ (PII/παρακράτηση), Finance (FX/GGR), Risk (RG/AML).
I: ΔΙ/Προϊόν/Μάρκετινγκ/Δραστηριότητες.

18) Χάρτης πορείας για την εφαρμογή

MVP (2- 4 εβδομάδες):

1. Μητρώο καταλόγου (αγορές, νομίσματα, πάροχοι, παιχνίδια).

2. Γεγονός των μοντέλων αργύρου. πληρωμές «,» γεγονός. στοιχήματα "," αμυδρά "(3HF), SCD II for 'dim. των χρηστών.

3. Ομαλοποίηση νομίσματος/ζώνη ώρας, βασικοί κανόνες DQ (FK/uniqueness/in_set).

4. First Gold Showcase (GGR Daily) και δοκιμές συμφιλίωσης.

Φάση 2 (4- 8 εβδομάδες):
  • Επέκταση SCD, κάλυψη εκδηλώσεων παιχνιδιού, μοντέλα συμμόρφωσης παρόχου.
  • Αυτόματοι υπολογιστές συμβατότητας Schema, προσομοιωτής μετάβασης, κατάλογος μεταδεδομένων.
  • Βελτιστοποίηση κλειδιού/κόμματος, ομαδοποίηση/σειρά Z.
Φάση 3 (8- 12 εβδομάδες):
  • Πολιτικές απομαλοποίησης για χρυσό, SLA/αξία· πρότυπα star/snowflake.
  • Αυτόματη δημιουργία τεκμηρίωσης, γράφημα γραμμής στα ταμπλό.
  • Περιφερειακοί κατάλογοι και κλειδιά κρυπτογράφησης, ασκήσεις DR.

19) Κατάλογος ελέγχου ποιότητας

  • Εγκρίνονται μεμονωμένα κλειδιά και κατάλογοι.
  • Ασήμι σε 3NF, SCD εφαρμόζεται σε «αργές» μετρήσεις.
  • Τα νομίσματα/οι χρονικές ζώνες ομαλοποιούνται. Το 'fx _ source' είναι σταθερό.
  • Οι κανόνες DQ (FK/uniqueness/range/in_set) είναι ενεργοί.
  • Τεκμηριωμένες απομαλοποιήσεις, πέρασαν οι δοκιμές ορθότητας.
  • Οι μετρήσεις γενεαλογίας και φρεσκάδας/πληρότητας είναι ορατές στα ταμπλό.

20) Συχνά λάθη και τρόπος αποφυγής τους

PII ανάμειξη στην ανάλυση: ξεχωριστές χαρτογραφήσεις, χρήση CLS/RLS.
Ανεπαρκής ομαλοποίηση του αργύρου: οδηγεί σε 3NF, κατά τα άλλα ακριβά σφάλματα υποστήριξης και συμφιλίωσης.
FX «ανά αναφορά»: Οι τιμές πρέπει να καταγράφονται σε ένα γεγονός, όχι σε «αναδρομική ημερομηνία».
Χωρίς SCD για βασικές διαστάσεις: χαμένο ιστορικό RG/KYC/καναλιού.
Επανεθνικοποίηση χρυσού: περιττές ενώσεις → διαχειριζόμενη απομαλοποίηση.
Αδιαφανής εξέλιξη των συστημάτων: χρήση μητρώου και δοκιμών καταναλωτή.

21) Η τελική γραμμή

Η ομαλοποίηση είναι μια πειθαρχία ασημένιου επιπέδου: ομοιόμορφα κλειδιά και βιβλία αναφοράς, 3NF/BCNF για γεγονότα και μετρήσεις, σωστή ιστορία (SCD) και τυποποίηση του χρόνου/νομίσματος. Με έναν τέτοιο «σκελετό», οι χρυσές υποθέσεις γίνονται προβλέψιμες, οι αναφορές είναι συγκρίσιμες και το κόστος της ιδιοκτησίας ελέγχεται.

Contact

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

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

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

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

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

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