GH GambleHub

Διαδικασίες ETL/ELT

1) Σκοπός και πλαίσιο

Οι αγωγοί ETL/ELT παρέχουν προβλέψιμη φόρτωση, μετατροπή και δημοσίευση δεδομένων για την υποβολή εκθέσεων (GGR/NGR, ρυθμιστικές αρχές), την ανάλυση/ML και τις επιχειρησιακές ομάδες.

ETL: μετατροπή πριν από τη φόρτωση σε DWH/Lakehouse (λιγότερο συχνά στις σύγχρονες στοίβες).
ELT: πρώτη φόρτωση σε Lakehouse (Bronze/Silver), στη συνέχεια μετατροπή SQL/κινητήρες (συνιστάται).

2) Αρχιτεκτονική αναφοράς

1. Εισπνοή/άκρη: HTTP/gRPC/Παρτίδα, CDC από OLTP, πάροχος S3/FTP αποστολής.
2. Χάλκινο (ακατέργαστο, μόνο προσθήκη): αμετάβλητα ωφέλιμα φορτία, μέρη ανά ημερομηνία/αγορά/ενοικιαστή.
3. Ασήμι (καθαρό/σύμφωνο): κανονικοποίηση, αφαίρεση, κατάλογοι, SCD, FX/χρονικές ζώνες.
4. Χρυσός (σερβίρισμα): απομαλοποιημένα καταστήματα για ΔΙ/ρυθμιστή/μοντέλα.
5. Ενορχήστρωση: Ροή αέρα/Dagster/Νομάρχης (DAG 'i, SLA, Retrai, Shifts).
6. DQ/Συμβάσεις: Schema Registry + DQ- как - код, δοκιμές με γνώμονα τους καταναλωτές.
7. Παρατηρησιμότητα: μετρήσεις αγωγών, γενεαλογία, αρχεία καταγραφής, πίνακες κόστους-ταμπλό.

3) Επιλογή ETL έναντι ELT

ΚριτήριοETLELT (συνιστώμενη)
Ευελιξία των χορηγήσεωνχαμηλήυψηλή (ταξίδι στο χρόνο, επανεπεξεργασία)
Κόστοςπιο ακριβά όταν αναπτύσσονταιβέλτιστη κατά την κλιμάκωση
Ποιοτικός έλεγχοςσχετικά με την εισπνοήέως Silver/Gold + DQ-as-code
Ιστορικότητα/εγκληματολογίαπεριορισμόςΠλήρες (μόνο χάλκινο προσάρτημα)

Πρακτική: στο iGaming - ELT + CDC: φορτίο γρήγορα, κατόπιν τυποποίηση και μέτρηση.

4) Προσαυξήσεις και CDC

Προσεγγίσεις Δέλτα:
  • CDC (αντιγραφή Debezium/log): OLTP αλλάζει → χάλκινο → MERGE σε ασήμι.
  • Υδατογράφημα ανά ώρα: 'update _ at> 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; 'schema _ version' in events/files.
Εξέλιξη: συμβατές με την πλάτη (ακυρώσιμες προσθήκες). σπάσιμο - '/v2 '+ διπλή εγγραφή.
Τα απαιτούμενα πεδία είναι 'event _ time (UTC)', 'event _ i ,' 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 και idempotence: backoff, «καθαρές» επαναλήψεις, σημεία ελέγχου.
Catchup: τακτοποιημένο αλίευμα χαμένων περιόδων.
SLA: Χρυσός, για παράδειγμα. η ημέρα είναι έτοιμη πριν από τις 06:00 τοπική ώρα· ειδοποιήσεις για παραβιάσεις.
Παραμετροποίηση: αγορές/ενοικιαστές/ημερομηνίες μέσω ποικιλιών. ένα ενιαίο πρότυπο εργασίας.

8) Ταυτότητα και ακριβώς μία φορά

Στην κατάποση: τα αντίγραφα είναι δυνατά → αφαίρεση με '(event_id, πηγή)'.
Κατά την επεξεργασία: upsert/συγχώνευση. «καθαρές» λειτουργίες μετασχηματισμού.
Σε νεροχύτη: η συναλλαγή δεσμεύει ή idempotent γράφει? έλεγχος της «διπλής μέτρησης».
Outbox/Inbox: εμπορικές εκδόσεις εκδηλώσεων τομέα από το OLTP.

9) Οπισθοπλήρωση и επανεπεξεργασία

Backfill: πρωτογενής πλήρωση/ιστορικές σειρές.
Επανεπεξεργασία - επανυπολογισμός όταν μεταβάλλεται/διορθώνεται η λογική.
Guardrails: όρια εύρους, ποσοστώσεις, χρονικά παράθυρα, στεγνή λειτουργία με μετρική σύγκριση.
Σήμανση: 'logic _ version', 'revested _ at', 'recalc _ reason'.

10) Μοντελοποίηση αργύρου/χρυσού

Silver (3NF/BCNF): γεγονότα 'fact _ bets/payments/payments', διαστάσεις 'dim _ users/games/providers/markets (SCD II)', τυποποίηση νομισμάτων/χρονικές ζώνες.
Χρυσός: απομαλοποιημένα καταστήματα για ΔΙ/ρυθμιστή/μοντέλα. αμετάβλητα πακέτα εξαγωγών (WORM) + υπογραφή.

Παράδειγμα χρυσού: 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) Προστασία της ιδιωτικής ζωής και διαμονή

ελαχιστοποίηση PII: μαρκινοποίηση· απεικονίσεις πραγματικών ταυτοτήτων στον απομονωμένο βρόχο.
RLS/CLS: πολιτικές πρόσβασης ανά ρόλο/δικαιοδοσία, συγκάλυψη.
Κατοικία: χωριστοί κατάλογοι/κλειδιά για ΕΟΧ/ΗΒ/BR· η απαγόρευση των διαπεριφερειακών ενώσεων χωρίς λόγο.
DSAR/RTBF & Legal Hold: επιλεκτικές επεξεργασίες, αρχεία WORM για υποβολή εκθέσεων, ελέγχους εξαγωγών.

12) Παρατηρησιμότητα και SLO

Δείκτες αναφοράς SLI/SLO:
  • φρεσκάδα Silver p95 ≤ 15 λεπτά· Ο χρυσός καθημερινά είναι έτοιμος μέχρι τις 06:00. χρόνος.
  • Πληρότητα ≥ 99. 5%, ισχύς (καθεστώς) ≥ 99. 9%.
  • Η επιτυχία των θέσεων εργασίας ανέρχεται σε 99 ευρώ. 0%, περιστατικά MTTR ≤ 24-48 ώρες.

Dashboards: Χάρτης θερμότητας φρεσκάδας, χοάνη απώλειας DQ, κόστος/ερώτημα & κόστος/GB, γράφημα γενεαλογίας.

13) Επιδόσεις και κόστος

Κατάτμηση: ημερομηνία/αγορά/ενοικιαστής. ομαδοποίηση/σειρά Z με φίλτρα.
Μορφότυποι: Parquet + ACID (Delta/Iceberg/Hudi), συμπίεση και στατιστικές.
Συμπίεση: καταπολέμηση μικρών αρχείων (OPTIMIZE/ΚΕΝΟ).
Υλοποίηση: σταθερά συγκεντρωτικά στοιχεία. να αποφεύγονται οι γιγαντιαίες ενώσεις κατά τη διάρκεια της πτήσης.
Χρέωση: προϋπολογισμοί, ποσοστώσεις αναπαραγωγής/backfill. προγραμματισμός σε παράθυρα χαμηλού φορτίου.

14) Παραδείγματα τυπικών εργασιών DAG (ψευδοκώδικας ροής αέρα)

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) Διαδικασίες και ΠΓΣ

R (Υπεύθυνη): Μηχανική δεδομένων (μοντέλα DAG, Silver/Gold), Πλατφόρμα Δεδομένων (infra, Registry, DQ).
A (υπόλογος): Προϊστάμενος δεδομένων/CDO.
C (Ζητήθηκε η γνώμη): Συμμόρφωση/Νομικός/Υπόχρεος Προστασίας Δεδομένων (PII/κάτοικος/Νομικός περιορισμός), Οικονομικά (FX/GGR), Κίνδυνος (RG/AML), SRE (SLO/стоимость).
I (Ενημερωμένο): BI/Προϊόν/Μάρκετινγκ/Δραστηριότητες.

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

MVP (3- 5 εβδομάδες):

1. Lakehouse Bronze/Silver (ACID) + CDC/προσαυξήσεις για πληρωμές/Gameplay.

2. DQ-παρόμοιος κώδικας (10-15 κανόνες) και βασικά ταμπλό φρεσκάδας/πληρότητας.

3. First Gold Showcase (GGR Daily) με SLA «μέχρι τις 06:00», η WORM εξάγει με υπογραφή.

4. DAG και ενορχήστρωση συναγερμού σε SLA/DQ.

Φάση 2 (5- 10 εβδομάδες):
  • Επέκταση τομέα, SCD II για χρήστες/παιχνίδια/παρόχους.
  • Σημασιολογικό στρώμα μετρήσεων. ανάλυση γενεαλογίας/επιπτώσεων· διαδικασίες οπισθοπλήρωσης/επανεπεξεργασίας.
  • Περιφερειοποίηση (ΕΟΧ/ΗΒ), RLS/CLS, έλεγχος κόστους (ποσοστώσεις/χρέωση).
Φάση 3 (10- 16 εβδομάδες):
  • Επανάληψη προσομοιωτή (what-if), αυτόματη δημιουργία τεκμηρίωσης προβολής/μετρήσεων.
  • Βελτιστοποίηση κόστους (ομαδοποίηση, υλοποίηση, TTL, συμπίεση).
  • Ασκήσεις DR και ανάκτηση χρόνου ταξιδιού.

17) Κατάλογος επιλογών πριν από την πώληση

  • Συμβάσεις/σχήματα στο μητρώο, δοκιμές συμβατότητας πράσινες.
  • Οι προσαυξήσεις CDC και MERGE είναι ταυτόσημες. dedup για την κατάποση.
  • Οι κανόνες DQ είναι ενεργοί (κρίσιμη βλάβη + DLQ), τα ταμπλό SLA είναι ρυθμισμένα.
  • Οι χρυσές βιτρίνες είναι τεκμηριωμένες, μετρικές φόρμουλες στο σημασιολογικό στρώμα.
  • RBAC/ABAC, κρυπτογράφηση, κατοικία, επαληθευμένη DSAR/RTBF/Legal Hold.
  • Συμπίεση/ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ/ΚΕΝΟ σε πρόγραμμα. όρια backfill/replay.
  • Runbook "και περιστατικά και επανεπεξεργασία, εξαγωγές ελέγχου (WORM + hash).

18) Αντισυμβαλλόμενοι και κίνδυνοι

Πλήρης επαναφόρτωση «σε περίπτωση»: χρήση CDC/προσαυξήσεων.
Ανάμειξη ακατέργαστων και αναφερθέντων δεδομένων: Χάλκινο/ασημένιο/χρυσό χωριστά.
Έλλειψη DQ και γενεαλογίας: μη αποδεδειγμένη και αναπαραγωγιμότητα.
PII σε αναλυτικά στρώματα: απομονωμένες χαρτογραφήσεις, εφαρμογή CLS/RLS.
Μονολιθικά «νυχτερινά» τρυπήματα: συντρίμμια, παράλληλα σε παρτίδες.
Αγνοήστε το κόστος: παρακολουθήστε μικρά αρχεία, υλοποιήστε συγκεντρωτικά μεγέθη, εισάγετε ποσοστώσεις.

19) Γλωσσάριο (συνοπτικά)

ETL/ELT - εκχύλιση/μετατροπή/φόρτιση (πριν/μετά τη φόρτωση).
CDC - Αλλαγή σύλληψης.
SCD - ιστορική μέτρηση (I/II/III).
WORM - αμετάβλητη αποθήκευση των συσκευασιών αναφοράς.
Time-travel - ανάγνωση ιστορικών εκδόσεων πινάκων.

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

Το σύγχρονο ETL/ELT δεν είναι σενάρια, αλλά μια διαχειριζόμενη πλατφόρμα: συμβάσεις και DQ, ευφυείς αυξήσεις/CDC, Bronze/Silver/Gold layer πειθαρχία, παρατηρησιμότητα και SLO, ιδιωτικότητα και οικονομία. Ακολουθώντας αυτόν τον οδηγό, θα αποκτήσετε αναπαραγώγιμους και ελεγχόμενους αγωγούς που θα αναφέρουν συνεχώς την ισχύ, το προϊόν και τα μοντέλα σε κλίμακα και χωρίς εκπλήξεις.

Contact

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

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

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

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

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

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