Passa al contenuto principale

Cosa sono le transazioni acide?

Proprietà di transazione che garantiscono atomicità, coerenza, isolamento e durabilità per garantire l'integrità dei dati attraverso un'esecuzione affidabile e persistenza

4 Personas Apps 5

Summary

  • L'atomicità garantisce il completamento completo o il mancato completamento delle transazioni con rollback automatico in caso di errore, impedendo aggiornamenti parziali che potrebbero compromettere l'integrità dei dati in operazioni multi-step come trasferimenti di fondi o aggiornamenti di inventario.
  • La coerenza mantiene la validità del database applicando vincoli, trigger e cascate, assicurando che tutte le transazioni effettuino la transizione del database da uno stato valido a un altro in base alle regole aziendali definite.
  • L'isolamento impedisce l'interferenza delle transazioni simultanee tramite meccanismi di blocco e livelli di isolamento (lettura non confermata, lettura confermata, lettura ripetibile, serializzabile), mentre la durabilità garantisce che le modifiche confermate persistano in caso di errore di sistema tramite la registrazione write-ahead.

Che cos'è una transazione?

Nel contesto di database e sistemi di archiviazione dei dati, per transazione si intende qualsiasi operazione gestita come singola unità di lavoro, che viene portata a termine oppure non viene completata del tutto, lasciando il sistema di archiviazione in uno stato coerente. Un esempio classico di transazione è il prelievo di contanti da un conto corrente. Il denaro viene prelevato dal conto corrente oppure resta depositato: non ci possono essere situazioni intermedie.

Grafica ACID delta lake

Proprietà A.C.I.D.: Atomicity, Consistency, Isolation e Durability (Atomicità, Coerenza, Isolamento e Durabilità)

ACID è un acronimo composto dalle 4 proprietà chiave che definiscono una transazione: Atomicity, Consistency, Isolation, e Durability. Se un'operazione su un database ha queste proprietà ACID, può essere definita transazione ACID e i sistemi di stoccaggio dei dati che eseguono queste operazioni vengono definiti sistemi transazionali. Le transazioni ACID garantiscono che ogni operazione di lettura, scrittura o modifica su una tabella abbia le seguenti proprietà:

  • Atomicità - ogni dichiarazione nella transazione (leggere, scrivere, aggiornare o cancellare dati) viene gestita come singola unità. La dichiarazione può essere eseguita solo interamente, altrimenti non viene eseguita. Questa proprietà impedisce che i dati vadano persi o vengano corrotti nel caso in cui, ad esempio, la sorgente di dati in streaming venga interrotta a metà del flusso.
  • Coerenza - questa proprietà garantisce che le transazioni apportino modifiche alle tabelle solo con modalità predefinite e prevedibili. La coerenza transazionale garantisce che alterazioni o errori nei dati non producano conseguenze indesiderate sull'integrità della tabella.
  • Isolamento - quando più utenti leggono e scrivono contemporaneamente sulla stessa tabella, l'isolamento delle loro transazioni assicura che transazioni contemporanee non interferiscano fra loro. Ogni richiesta viene gestita come se fosse l'unica, anche se in realtà sono in corso molteplici transazioni simultaneamente.
  • Durabilità - le modifiche ai dati apportate da transazioni eseguite con successo vengono salvate, anche in caso di guasto del sistema.
LEADER PER LA 5ª VOLTA

Gartner®: Databricks leader dei database cloud

Perché è bene poter utilizzare transazioni ACID?

Le transazioni ACID assicurano il massimo livello possibile di affidabilità e integrità dei dati. Garantiscono che i dati non finiscano mai in una condizione di incoerenza a causa del completamento solo parziale di un'operazione. Ad esempio, senza transazioni ACID, se si stanno scrivendo dati in una tabella di database ma si verifica un blackout elettrico, è possibile che vengano salvati solo alcuni dati, mentre altri vadano persi. A quel punto il database si troverebbe in uno stato di incoerenza, che richiederebbe interventi di ripristino lunghi e comunque difficili.

Delta Lake: dati affidabili e coerenti con le garanzie delle transazioni ACID

Logo Delta Lake

Le transazioni ACID sono da tempo una delle proprietà più apprezzate dei data warehouse, ma ora Delta Lake le ha estese anche ai data lake. Gli utenti possono così vedere viste coerenti dei loro dati anche quando è in corso la scrittura di nuovi dati nella tabella in tempo reale, perché ogni operazione di scrittura è una transazione isolata che viene memorizzata in un registro di transazioni ordinato. [Delta Lake utilizza il massimo livello possibile di isolamento (isolamento serializzabile), garantendo che le letture e le scritture in una singola tabella siano coerenti e affidabili.] Implementando le transazioni ACID, Delta Lake risolve efficacemente le criticità dell'architettura Lambda citate in precedenza: complessità, viste di dati non corrette, necessità di rilavorazioni e rielaborazioni dopo gli inevitabili guasti delle pipeline Lambda. Gli utenti possono effettuare molteplici transazioni contemporanee sui loro dati e, in caso di errori in una sorgente o un flusso di dati, Delta Lake annulla l'esecuzione della transazione per assicurare che i dati restino puliti e intatti. Il bello delle transazioni ACID è che gli utenti si possono fidare dei dati memorizzati in Delta Lake. Un analista di dati che usa tabelle Delta Lake per effettuare procedure ETL per preparare i dati per la visualizzazione su dashboard può contare sul fatto che i KPI visualizzati rispecchino lo stato effettivo dei dati. Un tecnico di machine learning che usa tabelle Delta Lake per la progettazione di feature può essere sicuro al 100% che tutte le trasformazioni e le aggregazioni siano state eseguite come previsto oppure non siano state eseguite del tutto (e, in tal caso, riceverebbe una notifica). Sapere che l'idea che si ha dei propri dati coincide esattamente con la loro condizione effettiva ha un valore incommensurabile.

Risorse aggiuntive

Non perdere mai un post di Databricks

Iscriviti al nostro blog e ricevi gli ultimi post direttamente nella tua casella di posta elettronica.

Cosa succederà adesso?

4 Personas Analytics AIBI 3a

Fundamentos de Data + AI

17 min di lettura

O que é Narrativa de Dados?

4 Personas Analytics AIBI 2a

Fundamentos de Data + AI

16 min di lettura

O que é Extrair, Carregar e Transformar (ELT)?