Ανάλυση σε πραγματικό χρόνο
1) Σκοπός και επιχειρηματική αξία
Η ανάλυση σε πραγματικό χρόνο (RTA) παρέχει αντιδράσεις σε δευτερόλεπτα, όχι ώρες:- AML/Antifraud: διάρθρωση καταθέσεων, επιθέσεις ταχύτητας, συναλλαγές κινδύνου.
- Υπεύθυνο παιχνίδι (RG): υπέρβαση των ορίων, πρότυπα κινδύνου, αυτοαποκλεισμός.
- SRE/Λειτουργίες: έγκαιρη ανίχνευση της υποβάθμισης SLA, εκρήξεις σφαλμάτων, υπερθέρμανση συμπλέγματος.
- Προϊόν και μάρκετινγκ: ενεργοποιήσεις εξατομίκευσης, αποστολές/αναζητήσεις, κατάτμηση σε πραγματικό χρόνο.
- Επιχειρησιακή υποβολή εκθέσεων: σχεδόν σε πραγματικό χρόνο GGR/NGR, ταμπλό αιθουσών/παρόχων.
Στόχοι: p95 end-to-end 0. 5-5 с, πληρότητα ≥ 99. 5%, διαθεσιμότητα ≥ 99. 9%.
2) Αρχιτεκτονική αναφοράς
1. Κατάποση/Άκρη - '/συμβάντα/παρτίδα '(HTTP/2/3), gRPC, Otel Collector; επικύρωση συστημάτων, αντι-αντιγραφών, γεω-δρομολόγηση.
2. Λεωφορείο εκδήλωσης - Kafka/Redpanda (συμμετοχή του «χρήστη _ id/ενοικιαστή/αγορά», DLQ, διατήρηση 3-7 ημέρες).
3. Επεξεργασία ροής - Flink/Spark Structured Streaming/Beam: stateful operators, CEP, υδατογραφήματα, επιτρεπόμενη καθυστέρηση, deadup.
4. Διαδικτυακός εμπλουτισμός - Redis/Scylla/ClickHouse lookups (όρια RG, KYC, BIN→MCC, IP→Geo/ASN), ασύγχρονες κλήσεις με χρονοδιαγράμματα και οπισθοδρόμηση.
5. Σερβίροντας - ClickHouse/Pinot/Druid (λειτουργικές εκθέσεις 1-5 λεπτά), Feature Store (επιγραμμικές πινακίδες), webhooks/ticketing/SOAR.
6. Lakehouse - Bronze/Silver/Gold για μακροπρόθεσμη ενοποίηση, επανάληψη και συμφιλίωση.
7. Παρατηρησιμότητα - μετρήσεις αγωγών, ιχνηλάτηση (OTel), καταγραφές, γενεαλογικοί πίνακες και πίνακες κόστους.
3) Σήματα και ταξινόμηση
Πληρωμές: 'πληρωμή. κατάθεση/ανάληψη/χρέωση '.
Τυχερά παιχνίδια: 'παιχνίδι. ποντάρισμα/πληρωμή ', συνεδρίες.
Ταυτοποίηση και συμπεριφορά: 'autif. login/failure', διακόπτης συσκευής, ταχύτητα.
Λειτουργία: καθυστέρηση, ρυθμός σφάλματος, επανεκκίνηση εστίας, κορεσμός.
Συμμόρφωση: έλεγχος κυρώσεων, σημαίες RG, εκδηλώσεις DSAR.
Κάθε τύπος έχει έναν ιδιοκτήτη τομέα, ένα σχήμα, μια φρεσκάδα SLO, και μια καθυστερημένη πολιτική δεδομένων.
4) Παράθυρα, υδατογραφήματα και καθυστερημένα δεδομένα
Παράθυρα: tumbling (σταθερό), hopping, συνεδρία.
Υδατογράφημα: όριο «γνώσης με το χρόνο» (συνήθως 2-5 λεπτά).
Καθυστερημένα γεγονότα: πρόσθετο ζήτημα προσαρμογών, σημαία 'αργά = αληθινά', DLQ με μεγάλη καθυστέρηση.
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream.payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);
5) Αθροίσεις CEP και stateful
Κλειδί: 'χρήστης _ i ,' συσκευή _ id ',' πληρωμή. .
Κατάσταση: συρόμενοι μετρητές/άθροισμα, φίλτρα άνθησης για την αφαίρεση, TTL.
Πρότυπα CEP: δομή (<κατώτατο όριο, ≥N φορές, ανά παράθυρο Τ), διακόπτης συσκευής, RG-κόπωση.
python if cnt_deposits(last=10MIN) >= 3 and sum_deposits(last=10MIN) > THRESH and all(d.amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, snapshot())
6) Ακριβώς μία φορά, τάξη και ταυτότητα
Τουλάχιστον μία φορά την παράδοση σε λεωφορείο + dedup με «event _ id» κατά την επεξεργασία (TTL 24-72 h).
Σειρά: κατάτμηση ανά κλειδιά (η τοπική τάξη είναι εγγυημένη).
Νεροχύτης: συναλλακτικές δεσμεύσεις (2-φάσης) ή idempotent upsert/συγχώνευση.
Outbox/Inbox: εμπορικές εκδόσεις εκδηλώσεων τομέα από το OLTP.
7) Διαδικτυακός εμπλουτισμός και κατάστημα χαρακτηριστικών
Αναζήτηση: όρια RG, καθεστώς KYC, BIN→MCC, IP→Geo/ASN, αγορές/φόροι, FX κατά τη στιγμή της εκδήλωσης.
Ασύγχρονες κλήσεις: κυρώσεις/APP API με χρονοδιαγράμματα. σχετικά με το σφάλμα - 'άγνωστο' + retray/cache.
Feature Store: online/offline διαπραγμάτευση· μία βάση κωδικών μετασχηματισμού.
8) Καταστήματα σε πραγματικό χρόνο και σερφάρισμα
ClickHouse/Pinot/Druid: μεγέθη δεύτερου/λεπτού, υλοποιημένες απόψεις, SLA για καθυστέρηση 1-5 λεπτών.
API/GraphQL: χαμηλή καθυστέρηση για ταμπλό/γραφικό συστατικό.
Καταχωρίσεις: webhooks/Jira/SOAR με εμπλουτισμένο πλαίσιο (trace_id, τελευταίες εκδηλώσεις).
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream.game_events
GROUP BY ts_min, market, provider_id;
9) Μετρικά, SLI/SLO και ταμπλό
Συνιστώμενες SLI/SLOs:- p95 ingest→alert ≤ 2 s (κρίσιμοι κανόνες), ≤ 5 s (άλλοι).
- Πληρότητα του παραθύρου T-99. 5%; Ισχύς σχήματος ≥ 99. 9%; Κάλυψη ιχνών ≥ 98%.
- Διαθεσιμότητα υπηρεσιών ροής ≥ 99. 9%; όψιμη αναλογία ≤ 1%.
- Υστέρηση των μερών/θεμάτων· απασχολημένος χρόνος των φορέων εκμετάλλευσης· το μέγεθος της κατάστασης.
- Χωνί «sobytiye→pravilo→keys», ακρίβεια/ανάκληση ανά τομέα.
- καθυστέρηση/πληρότητα της κάρτας θερμότητας· χάρτης θερμού κλειδιού.
10) Streaming DQ (Ποιότητα)
Επικυρώσεις κατάποσης: schema/enums/size-limits, anti-plicates.
Στη ροή: πληρότητα/ρυθμός εκροής/μεταγενέστερος λόγος, ορθότητα παραθύρου (χωρίς διπλή μέτρηση).
Πολιτικές αντίδρασης: κρίσιμη → DLQ + pager. major/minor → tagging + report.
yaml stream: payments rules:
- name: schema_valid type: schema severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: dedup_window type: unique keys: [event_id]
window_minutes: 1440
11) Προστασία της ιδιωτικής ζωής, ασφάλεια και διαμονή
ελαχιστοποίηση PII: ψευδώνυμο ID, κάλυψη ευαίσθητων πεδίων, σήμανση PAN/IBAN.
Κατοικία δεδομένων: περιφερειακοί αγωγοί (EEA/UK/BR), μεμονωμένα κλειδιά KMS.
DSAR/RTBF: επιλεκτική επεξεργασία σε κατάντη καταστήματα· Νομικό καθεστώς για υποθέσεις/εκθέσεις.
Έλεγχος: αμετάβλητα αρχεία καταγραφής των μεταβολών πρόσβασης/κανόνων, αποδέσμευση καταγραφής.
12) Οικονομικά και παραγωγικότητα
Τεμαχισμός/κλειδιά: αποφυγή «θερμών» κλειδιών (αλάτισμα/σύνθετο), ισορροπία μερών.
Κατάσταση: TTL, συμπαγή στιγμιότυπα, ρύθμιση υποστήριξης RocksDB/κατάστασης.
Προκαταρκτικές συγκεντρώσεις: μείωση στα πρώτα στάδια για θορυβώδη θέματα.
Δειγματοληψία: μόνο για μη κρίσιμες μετρήσεις (όχι συναλλαγές/συμμόρφωση).
Χρέωση: θεματικοί προϋπολογισμοί/προϋπολογισμοί θέσεων εργασίας, ποσοστώσεις επανάληψης και βαριές αιτήσεις.
13) Διαδικασίες και RACI
R: Streaming Platform (info/releases), Domain Analytics (κανόνες/χαρακτηριστικά), MLOps (scoring/Feature Store).
A: Προϊστάμενος δεδομένων/κινδύνου/συμμόρφωσης ανά τομέα.
Γ: ΥΠΔ/Νομικό (PII/κατακράτηση), SRE (SLO/περιστατικά), Αρχιτεκτονική.
I: Προϊόν, Υποστήριξη, Μάρκετινγκ, Χρηματοδότηση.
14) Χάρτης πορείας για την εφαρμογή
MVP (2- 4 εβδομάδες):1. Kafka/Redpanda + 2 κρίσιμα θέματα (για παράδειγμα, 'πληρωμές', 'auth').
2. Αναβοσβήνει εργασία με υδατογράφημα, απεμπλοκή και 1 κανόνα CEP (AML ή RG).
3. Λειτουργική βιτρίνα στο ClickHouse/Pinot (1-5 λεπτά), ταμπλό καθυστέρησης/πληρότητας.
4. Κανάλι περιστατικών (webhooks/Jira), βασικές SLO και ειδοποιήσεις.
Φάση 2 (4- 8 εβδομάδες):- Διαδικτυακός εμπλουτισμός (Redis/Scylla), Feature Store, ασύγχρονες αναζητήσεις.
- Διαχείριση κανόνων ως κωδικός, καναρίνι/A-B, streaming DQ.
- Περιφερειοποίηση των μεταφορέων, διαδικασίες DSAR/RTBF, νόμιμη κράτηση για υποθέσεις.
- Ενεργός, αναπαραγωγή και προσομοιωτής πολλαπλών περιοχών, βαθμονόμηση αυτόματου κατωφλίου.
- Αποθήκες ροής χρυσού (GGR/RG/AML), σχεδόν σε πραγματικό χρόνο.
- Ταμπλό κόστους, χρέωση, ασκήσεις DR.
15) Παραδείγματα (θραύσματα)
Flink CEP - διακόπτης διάταξης:sql
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY event_time
MEASURES
FIRST(A.device_id) AS d1,
LAST(B.device_id) AS d2,
COUNT() AS cnt
PATTERN (A B+)
DEFINE
B AS B.device_id <> PREV(device_id) AND B.ip_asn <> PREV(ip_asn)
) MR
Kafka Streams - φίλτρο idempotent:
java if (seenStore.putIfAbsent(eventId, now()) == null) {
context.forward(event);
}
16) Κατάλογος επιλογών πριν από την πώληση
- Συστήματα/συμβάσεις στο μητρώο, οι δοκιμές back-compat είναι πράσινες.
- Περιλαμβάνονται υδατογράφημα/επιτρεπόμενη καθυστέρηση, dedup, και DLQ.
- Ρυθμισμένο SLO και ειδοποιήσεις (lag/late/dup/state size).
- Εμπλουτισμός με κρύπτες και χρονοδιαγράμματα. «άγνωστο».
- RBAC/διπλός έλεγχος κανόνων/μοντέλων· Ενεργοποιημένο ημερολόγιο αλλαγής.
- Τεκμηρίωση κανόνων/παραθύρων καταστημάτων. runbook 'και replay/rollback.
17) Συχνά λάθη και τρόπος αποφυγής τους
Αγνοήστε το χρόνο εκδήλωσης: χωρίς υδατογραφήματα, οι μετρήσεις «επιπλέουν».
Καμία αφαίρεση: ψευδείς ειδοποιήσεις, διπλή καταμέτρηση.
Θερμά κλειδιά: στρέβλωση των μερών → αλάτιση/ανασχηματισμός.
Συγχρονισμένες API front-end στην καυτή διαδρομή: μόνο async + cache.
Μη διαχειριζόμενο κόστος: προκαταλήψεις, κράτη TTL, ποσοστώσεις, παρακολούθηση του κόστους.
Χωρίς προσομοιωτή: επανάληψη → παλινδρόμησης.
18) Η τελική γραμμή
Η ανάλυση σε πραγματικό χρόνο δεν είναι «γρήγορη BI», αλλά ένα κύκλωμα διαχείρισης με συμβάσεις, stateful λογική, CEP, υδατογραφήματα, online εμπλουτισμό και αυστηρούς SLOs. Ακολουθώντας αυτές τις πρακτικές, η πλατφόρμα λαμβάνει ακριβή σήματα και αποφάσεις εντός δευτερολέπτων, διατηρώντας τη συμμόρφωση, τα σενάρια προϊόντων και την λειτουργική ανθεκτικότητα με ελεγχόμενο κόστος.