GH GambleHub

Integrità dei dati

1) Cos'è l'integrità dei dati

L'integrità dei dati è un insieme di proprietà e controlli che garantiscono che i dati siano corretti, coerenti e coerenti in tutto il ciclo di vita, dalle origini e trasformazioni alle vetrine, API ed esportazioni. L'obiettivo è che la stessa affermazione dia la stessa risposta durante la ripetizione e che le modifiche siano tracciabili e verificabili.


2) Tipi di integrità e dove vivono

Entità (Entity) - Chiavi primarie univoche, nessuna duplicazione.
Riferimento (Referential) - Collegamenti FK corretti; l'assenza di riferimenti «sospesi».
Dominio (Domain) - Intervalli e formati validi (tipo, lunghezza, riferimenti).
Regole aziendali: invarianti dell'area oggetto (saldo ≥ 0, importo cablaggio = 0, ecc.).
Temporanea: monotonia e coerenza delle etichette temporali, zone temporali corrette.
Criteri di accesso: RLS/CLS non compromette la coerenza logica dei dati visibili.


3) Contratti dati e schemi (fonte verità)

Impostare i contratti formali per set ed eventi; Li applichiamo all'ingresso e dopo ogni trasformazione.

Esempio (YAML, semplificato):
yaml dataset: payments primary_key: txn_id foreign_keys:
- fk: user_id -> users.user_id schema:
- {name: txn_id, type: string, unique: true}
- {name: user_id, type: string, not_null: true}
- {name: amount, type: decimal(18,2), min: 0}
- {name: currency, type: string, in: [USD,EUR,TRY,UAH]}
- {name: event_time, type: timestamp, tz: UTC}
dq_rules:
- "duplicates(txn_id)=0"
- "ref_integrity(user_id, users.user_id)=true"
- "sum(amount) >= 0"
evolution:
semver: [MAJOR, MINOR, PATCH]
breaking_changes_require: approval:data-governance

4) Garanzie transazionali e isolamento

ACID per OLTP: atomatologia, consistenza, isolamento, durata.
Livelli di isolamento: Read Committed/Repeatable Read/Serializable - Seleziona il rischio di letture sporche/uniche/fantasma.
OLAP e lakehouse: committenti di tabelle atomiche, idempotent sink e schema-evolution con controllo di compatibilità.
Coerenza delle formule KPI: il livello semantico è una verità per report e API.


5) Sistemi distribuiti: ordine, ripetizioni, idipotenza

Ordine eventi: usiamo «event _ time» + «ingested _ at», watermarks e tolleranza lateness; aggregazioni basate su event time.
Ricarica (at-least-once): globale «event _ id», tabelle idempotency keys, upsert/merge su chiave sostenibile.
Out-of-order - Ridimensionamento delle finestre, strategia di ritardo, compensazione.
Exactly-once: il trasporto può essere at-least-once, il ricevitore è idipotente.


6) Convalida integrità (DQ) su ogni livello

Includere le regole di integrità in CI/CD e nel RATE delle pipeline:
  • Freshness/Completeness/Uniqueness/Valid Values/Referential Integrity.
  • Anomalie: picchi di duplicati, interruzioni di tempo, bruschi spostamenti di distribuzione.
  • Controllo delle formule KPI: versionalità dei calcoli e test di corrispondenza dei risultati.
  • Controllo esportazione - Impedisce l'emissione di set con violazioni (quarantine).
Esempio (Great Expectations):
yaml expect_column_values_to_be_unique: {column: txn_id}
expect_column_values_to_not_be_null: {column: user_id}
expect_column_values_to_be_in_set: {column: currency, value_set: [USD,EUR,TRY,UAH]}

7) Integrità finanziaria e operativa

Doppio-entry: debito/credito in saldo; compressioni di riepilogo in cut-off.
Invarianti totali: importo dei pagamenti = importo dei prelievi + commissione + correzioni.
Invarianti operativi: le metriche SLA/guardrail non compromettono le regole aziendali (ad esempio, le riparazioni automatiche non duplicano).


8) Lineedge, controllo e riproduzione

Linage: dalla fonte alle vetrine/fich; visibilità delle trasformazioni e dei proprietari.
Trailer di controllo: chi ha cambiato cosa, quando e perché; versioni di diagrammi/formule/jobs.
Snappshot/checkpoint: possibilità di contare e confermare i rapporti precedenti.
Ripro - La stessa richiesta di taglio → lo stesso risultato (versioni e livelli).


9) Sicurezza e privacy senza perdita di integrità

RLS/CLS - I filtri delle righe/colonne non possono violare gli invarianti (ad esempio, la somma del campione visibile deve corrispondere a quella dichiarata).
Maschera/Torning - Strategie definite per mantenere il deadup e l'integrità referenziale.
Crittografia nel canale e su disco dopo la compressione gestione delle chiavi e controllo delle disponibilità.
DSAR/Retention - L'eliminazione/anonimizzazione non rompe la connettività (criterio a cascata).


10) Autosufficienza e riparazione automatica

Quarantine - isolamento di partizioni/battelli sospetti; I consumatori sono un ramo pulito.
Replay/Backfill: ridisegna la finestra dal registro raw invariato.
Assemblaggio dei livelli e dei sistemi (raw↔curated↔marts; istochnik↔DWH).
Depup/Compettion/Rebuild - Procedure di riparazione di sistema per indici/aggregazioni.

Policy-as-code: "Che tipo di anomalia può determinare l'effetto della soglia di


11) Procedure di modellazione e conservazione

Chiavi stabili: PK surrogato (UUID/ULID), chiavi naturali immutabili nelle guide.
Normalizatsiya↔denormalizatsiya: comunicazioni FK all'origine, vetrine denormalizzate con controllo della versione logica.
SCD1/SCD2 - Cronologia guidata per le misurazioni.
Ordinamento/clustering: migliora RLE/zone-maps e semplifica la compressione.
Hash e checksum: verifica l'integrità dei file/partiture.


12) Integrità nel tempo e nei rapporti

Versioni delle formule: il report di gennaio 2025 deve essere riprodotto dalla versione X.
Cut-off e Chiusura periodo - Congelamento delle vetrine e dei tagli di archiviazione.
Late arriving facts - Meccanica dosaggio e calcolo con il segno della versione del report.
Documentazione delle ridefinizioni: regolazioni manuali solo con l'udienza.


13) Integrazione e API

Contratto API: schemi, tipi, campi obbligatori, codici di errore; versioning (v1/v2).
Convalida in ingresso: reject cattivo payload, non riparare in silenzio.
Idempotent POST: chiave di idempotenza, ripetizione sicura.
Esporta in file: coerenza delle partiture, hash, firme.


14) Antipattern

SELECT nelle query e nelle query - si rompe durante l'evoluzione MINOR.
FK a parole: nessuna verifica effettiva dei collegamenti.
Correzioni silenziose dei dati senza controllo o report.
Mescolare TZ e formati di tempo in un unico set.
Ridefinire KPI con maniglie senza versione o registro.
Unica chiave di deduplicazione senza strategie di ricambio.
Rimozione DSAR senza controllo a cascata.


15) Road map di implementazione

1. Inventory & criticità: mappa dei set/eventi, proprietari, rischi, invarianti.
2. Contratti e schemi: formalizza i tipi/vincoli/FK, controlli di compatibilità CI.
3. DQ in pipline: Freshness/Completeness/Uniqueness/RI, quarantine, alert.
4. Base transazionale: atomic-sink, upsert/merge, cronologia SCD, versionalità delle formule.
5. Lineedge e controllo: directory, traccia, change-logs, access-logs.
6. Criteri di riparazione: replay/backfill/dedup/recordcile come codice; runbook’и и SLO MTTR-data.
7. Protezione/rap: RLS/CLS, occultamento, crittografia, processi DSAR.
8. Report: cut-off, tagli freeze, gestione delle versioni KPI.


16) Foglio di assegno prima del lancio del set/vetrina

  • PK/FK e vincoli di dominio impostati e sottoposti a test.
  • Versioning di diagrammi/formule abilitato schema-differf verde.
  • Regole DQ (freschezza/completezza/unicità/intervalli/RI) verdi.
  • Voci Idempotent: upsert/merge, chiave di idempotenza (per eventi).
  • Tempo: 'event _ time'e'ingested _ at', TZ = UTC; criterio late data.
  • Lineage e controllo sono visibili; quarantine e alert inclusi.
  • RLS/CLS/occultamento non violano invarianti o RI.
  • DSAR/Retention testati; cut-off/archivio è pronto.

17) Mini modelli

SQL - Verifica integrità riferimento

sql select count() as orphans from fact_payments f left join dim_users u on f.user_id = u.user_id where u.user_id is null;
-- ожидаем orphans = 0

Criterio quarantine/repair (pseudo-YAML)

yaml policy: payments_integrity detect:
- rule: duplicates(txn_id) > 0
- rule: ref_integrity(user_id, users.user_id) = false auto_actions:
- quarantine_partition: {date: today}
- trigger_replay: {window: "last_2h"}
escalate_if:
- condition: violations_persist>30m page: "oncall-data"

Schema SCD2 per la misurazione

sql
-- dim_user_status (SCD2)
user_id, status, valid_from, valid_to, is_current

18) Totale

L'integrità dei dati non è una sola verifica, ma un sistema di garanzia completo: contratti e vincoli formali, invarianti transazionali e distribuiti, convalida e automatizzazione delle riparazioni, lineage e verifiche, privacy e diritti. Quando questi elementi lavorano insieme, i dati diventano una base affidabile per le soluzioni e gli incidenti sono rari, brevi e prevedibili.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.