Έλεγχος της ποιότητας των δεδομένων
1) Σκοπός και αρχές
Γιατί: αξιόπιστες εκθέσεις (GGR/φόροι), μοντέλα καταπολέμησης της απάτης και RG, μεταφορτώσεις συμμόρφωσης, προϊόντα και εξατομίκευση.
Αρχές:- Schema-first & Contracts: Όλες οι πηγές είναι υποχρεωμένες να δημοσιεύουν τα στοιχεία των συμβάσεων.
- DQ-as-code: κανόνες στο αποθετήριο, εκδόσεις, δοκιμές και επανεξετάσεις.
- Παρατήρηση εξ ορισμού: μετρήσεις/καταγραφή/γενεαλογία.
- Privacy-by-design: ελάχιστο PII, απόκρυψη και RLS/CLS.
- Επίγνωση του κόστους: ιεράρχηση των κρίσιμων κανόνων, έξυπνα δείγματα.
2) Ταξινόμηση των μετρήσεων ποιότητας
Πληρότητα - Ποσοστό απαιτούμενων πεδίων/σειρών.
Τύποι/σειρές αντιστοιχιών ισχύος/βιβλία αναφοράς.
Μοναδικότητα: δεν υπάρχουν διπλά κλειδιά/γεγονότα.
Συνέπεια: ακεραιότητα αναφοράς, επιχειρηματικές αναλλοίωτες
Ορθότητα - Προσεγγίζει την «πραγματική» πηγή (συνοπτικές συμφωνίες).
Χρονοδιάγραμμα/Φρεσκάδα - Καθυστέρηση υλικού.
Γενεαλογία Ακεραιότητα: διατήρηση της προέλευσης/των εκδόσεων των μετασχηματισμών.
Οι KPI ποιότητας και κρισιμότητας (κρίσιμοι/μείζονες/ήσσονος σημασίας) ορίζονται για κάθε τομέα.
3) Συμβάσεις και συστήματα (πηγή αλήθειας)
Συμβάσεις δεδομένων: JSON Schema/Avro/OpenAPI/AsyncAPI, που φιλοξενείται από το μητρώο.
Σταθερότητα: αλλαγές συμβατές προς τα πίσω - προσθήκη άκυρων· σπάσιμο - νέα έκδοση + διπλή είσοδος.
Ανιχνευσιμότητα: σε γεγονότα - 'event _ id', 'trace _ id', 'schema _ version', 'source'.
4) DQ-as-code: τεχνητή δομή
Φυλάσσετε τους κανόνες στο Git μαζί με τους αγωγούς:
/dq/
rules/
silver. payments. yaml gold. ggr_daily. yaml checks/
sql/
python/
policies/
severities. yaml notifications/
routes. yaml
Κανόνες: δηλωτική YAML/SQL
Σοβαρότητα: χαρτογράφηση → διαύλων συναγερμού/επίπεδα κλιμάκωσης·
CI: χιτώνια κυκλωμάτων, δοκιμές συμβατότητας, ξηρός/προσομοιωτής.
5) Παραδειγματικοί κανόνες (YAML)
yaml table: silver. payments owner: data-payments slo:
freshness_minutes: 15 completeness_percent: 99. 5 rules:
- name: amount_positive severity: critical type: range column: amount min: 0. 01
- name: currency_in_whitelist severity: major type: in_set column: currency set: [EUR, USD, GBP, TRY, BRL]
- name: unique_tx severity: critical type: unique columns: [transaction_id]
- name: fk_user_exists severity: critical type: foreign_key column: user_pseudo_id ref_table: dim. users ref_column: user_pseudo_id
- name: ts_monotonicity severity: minor type: temporal expression: "ts between date_sub(now(), interval 90 day) and now()"
6) Δοκιμές SQL (δείγματα)
Μοναδικότητα κλειδιών
sql
SELECT transaction_id, COUNT() AS c
FROM silver. payments
GROUP BY transaction_id
HAVING COUNT() > 1;
Απαιτούμενη πληρότητα πεδίου
sql
SELECT COUNT() AS nulls
FROM silver. payments
WHERE amount IS NULL OR currency IS NULL OR ts IS NULL;
Αναφορές/Συνέπεια
sql
SELECT p. currency
FROM silver. payments p
LEFT JOIN ref. currencies r ON p. currency = r. code
WHERE r. code IS NULL;
7) Streaming DQ (σε πραγματικό χρόνο)
Επικύρωση κατάποσης: επικύρωση σχήματος, όρια μεγέθους, τύποι και enum 's.
Επιτόπιοι έλεγχοι: dedup '(event_id, πηγή)', επιτρεπόμενη καθυστέρηση, νόμισμα/ποσό ισχύος.
Όρια: κρίσιμα σφάλματα → συναγερμός DLQ +. όχι κρίσιμη ετικέτα, αλλά παραλείψτε (με τη σημαία «dq _ flag»).
Μετρήσεις: πληρότητα/υστέρηση/ρυθμός απορρόφησης ανά μέρος.
8) Χειρισμός σφαλμάτων και εξαιρέσεων
DLQ/Καραντίνα: Διατηρούνται αρχεία ασθενών, διαθέσιμα για διόρθωση.
Αρχεία εξαίρεσης: κάρτα αποκλεισμού (ιδιοκτήτης, ημερομηνία, λόγος, περιοχή).
Αυτόματη επαναφορά: Χρησιμοποιήστε το τελευταίο σωστό στιγμιότυπο της θήκης απεικόνισης.
SLA κλεισίματος: κρίσιμης σημασίας - ≤ 24-48 ώρες, μείζων - ≤ 5 ημέρες εργασίας.
9) Συντονισμός με την ιδιωτική ζωή και τη συμμόρφωση
ελαχιστοποίηση PII: δεν ελέγχεται «ακατέργαστη» PII σε αναλυτικά στρώματα· Χρησιμοποιήστε ψευδώνυμα.
Οι έλεγχοι RLS/CLS εκτελούνται με βάση την κάλυψη πεδίου.
Περιφερειοποίηση: Οι κανόνες λαμβάνουν υπόψη τη «δικαιοδοσία» (ΕΟΧ/ΗΒ/BR).
Νόμιμη κατοχή: Δεν υπάρχει επαναγραφή αρχείων ως μέρος της κατοχής.
10) Παρατηρησιμότητα, SLI/SLO και προειδοποιήσεις
Συνιστώμενες SLI/SLOs:- Φρεσκάδα p95 (Άργυρος): ≤ 15 λεπτά
- Πληρότητα (κρίσιμοι τύποι): ≥ 99. 5%.
- Ισχύς (σχήμα): ≥ 99. 9%.
- Διπλός ρυθμός: ≤ 0. 1%.
- Περιστατικό DQ MTTR: ≤ 24-48 ч.
Ειδοποιήσεις: βομβητής για κρίσιμα, αντιαλλεργικά, παράθυρα συντήρησης.
11) Ταμπλό (ελάχιστο σύνολο)
Φρεσκάδα/Χάρτης θερμότητας πληρότητας ανά τομέα και αγορά.
Οι κορυφαίοι πίνακες N ανά ποσοστό συμβάντων και ανά κόστος διορθώσεων.
DQ χοάνη: κατάποση αργύρου χρυσού (απώλεια/διόρθωση).
Γραμμικός χάρτης για τις κρίσιμες εκθέσεις (ρυθμιστής/GGR/RG/AML).
Χάρτης των «κληροδοτημένων» σχημάτων και πελατών (εκδόσεις SDK/schema).
12) Διαδικασίες και RACI
R (υπεύθυνος): Μηχανική δεδομένων (κανόνες για τους πίνακες), Ιδιοκτήτες τομέα (σημασιολογία).
A (υπόλογος): Προϊστάμενος δεδομένων/CDO.
C (Ζητήθηκε η γνώμη): Συμμόρφωση/Νομική/ΥΠΔ, Αρχιτεκτονική, SRE.
I (Ενημερωμένο): BI/Продукт/Маркетинг/Финансы/Операции.
Κανόνας ζωής: προσφορά → αναθεώρηση → «σκοτεινής διαδρομής» → συμπερίληψη → παρακολούθηση → αναδρομική εφαρμογή.
13) Συμφιλίωση και ακρίβεια
Έλεγχοι/συναλλαγές: θησαυροφυλάκιο με OLTP/παρόχους (PSP/KYC).
Συγκρίσεις δύο βρόχων: ανεξάρτητος αγωγός για επιλεκτική επικύρωση.
Τα όρια ανοχής είναι ποσοστιαία όρια με μετρήσεις (π.χ. Διακύμανση GGR ≤ 0. 2%).
Καθημερινές πράξεις: εκθέσεις συμφωνίας ελέγχου.
14) Κόστος και ιεράρχηση προτεραιοτήτων
Συχνότερη εφαρμογή κρίσιμων κανόνων (ροή/ωριαία), ήσσονος σημασίας - ημερησίως.
Χρησιμοποιήστε τα πιάτα και τους πραγματικούς ελέγχους για τα βαριά τραπέζια.
Κόστος τροχιάς/ερώτηση και κόστος/GB, εφαρμογή ομαδοποίησης/ευρετηρίασης.
Διάθεση προϋπολογισμού για DQ στο πλαίσιο ομάδων (χρέωση).
15) Υποδείγματα για τα χρυσά καταστήματα (GGR Daily παράδειγμα)
yaml table: gold. ggr_daily owner: fin-analytics slo:
ready_by_local_time: "06:00"
rules:
- name: ggr_not_negative severity: critical type: range column: ggr min: 0. 0
- name: market_known severity: major type: in_set column: market set_ref: ref. markets
- name: fx_source_present severity: major type: not_null column: fx_source
- name: completeness_by_market severity: critical type: completeness partition_keys: [event_date, market]
expected_rows_expression: "ref. expected_activity(event_date, market)"
16) Ποιοτικά περιστατικά: Διαχείριση και επικοινωνία
Έκδοση εισιτηρίων: αυτόματη δημιουργία εργασιών με συνημμένες επιλογές και μετρήσεις.
Υποδείγματα Comm: γνωστοποίηση των ιδιοκτητών/ρυθμιστικών αρχών προϊόντων όταν επηρεάζονται.
Μεταθανάτια: αιτία ρίζας (μετατόπιση σχήματος, σφάλμα ανάντη, φορτίο), ενέργειες CAPA, έλεγχος της «επιστροφής παλινδρόμησης».
17) Χάρτης πορείας για την εφαρμογή
MVP (2- 4 εβδομάδες):1. Κατάλογος κρίσιμων πινάκων (Πληρωμές, Gameplay, GGR, Compliance).
2. Κανόνες YAML για 10-15 βασικούς ελέγχους + επικύρωση CI.
3. Ταμπλό φρεσκάδας/πληρότητας και ειδοποιήσεις για κρίσιμης σημασίας.
4. Διορθώσεις DLQ/Quarantine + runbook.
Φάση 2 (4- 8 εβδομάδες):- Επέκταση κανόνα (FK/ακρίβεια), προσομοιωτής ξηρής λειτουργίας, καταχωρίσεις A/B.
- Ενσωμάτωση γενεαλογικών γραμμών, ρυθμίσεις εξαίρεσης και SLA.
- Ροή DQ στην κατάποση για «θορυβώδεις» πηγές.
- Αυτοπαραγωγή τεκμηρίωσης με κανόνες, μετρήσεις κόστους.
- «Περίγραμμα ελέγχου» (ανεξάρτητη συμφιλίωση), εβδομαδιαία αναδρομική έκθεση.
- Πλατφόρμα κανόνα-ως-κώδικα SDK, μητρώο τυποποιημένων ελέγχων τομέα.
18) Κατάλογος ελέγχου πριν από την πώληση
- Συμβάσεις και σχήματα στο μητρώο, οι δοκιμές συμβατότητας περνούν.
- Κανόνες YAML που έχουν παγώσει, σοβαρότητα/κλιμάκωση που έχει αποδοθεί.
- Οι πίνακες και οι καταχωρίσεις είναι ενεργές. Οι SLO ορίζονται και συμφωνούνται.
- DLQ/Καραντίνα είναι διαθέσιμα, runbooks είναι τεκμηριωμένα.
- Διαδικασίες εξαίρεσης/αντιπαραβολής που συμφωνούνται με τη νομοθεσία/συμμόρφωση.
- Μέτρηση του κόστους των επιθεωρήσεων και των ορίων των βαρέων αιτημάτων.
19) Συχνά λάθη και τρόπος αποφυγής τους
Ανεπεξέργαστα δεδομένα χωρίς συμβάσεις: εισάγετε σχήματα-πρώτα και δοκιμές-καταναλωτές.
«Χειροκίνητοι» έλεγχοι: μεταφράζονται σε DQ-as-code και CI.
Καμία ιεράρχηση: χωριστά κρίσιμα/μείζονα/ήσσονος σημασίας κανάλια και κανάλια συναγερμού.
Δεν υπάρχει DLQ: δεν υπάρχει τίποτα που να λειτουργεί με σφάλματα - προσθήκη καραντίνας.
Αγνοήστε το κόστος: Ερωτήματα προφίλ, χρησιμοποιήστε την υλοποίηση.
Δεν υπάρχουν νεκροψίες: επαναλαμβάνονται σφάλματα - εισάγετε CAPA και έλεγχο παλινδρόμησης.
20) Η τελική γραμμή
Το σύστημα ελέγχου της ποιότητας των δεδομένων δεν είναι ένα σύνολο διάσπαρτων ελέγχων, αλλά ένα πρόγραμμα διαχείρισης: συμβάσεις και συστήματα, DQ-as-code, παρατηρησιμότητα και SLO, πειθαρχία συμβάντων και συμφιλίωσης. Ακολουθώντας αυτό το άρθρο, θα λάβετε αναπαραγώγιμα, επαληθεύσιμα και οικονομικά αποδοτικά δεδομένα επαρκή για την υποβολή ρυθμιστικών εκθέσεων, λύσεων προϊόντων και ανιχνευτών κινδύνου σε πραγματικό χρόνο.