// data & ai · giornale tecnico MILANO ● LIVE 00:00:00

Cos’è l’idempotenza e perché conta nelle pipeline dati

L’idempotenza è la proprietà per cui ripetere un’operazione non cambia il risultato dopo la prima esecuzione. Nel data integration rende le pipeline auto-correttive ed evita i record duplicati.

L’idempotenza è la proprietà per cui, eseguendo un’operazione più volte, il risultato non cambia dopo la prima esecuzione. Se l’operazione è una funzione matematica, significa che applicarla al proprio output non ne modifica il valore: f(f(x)) = f(x). Molte funzioni comuni non lo sono: f(x) = x + 1, ad esempio, cresce a ogni iterazione. La funzione f(x) = abs(x), invece, è idempotente, perché applicata di nuovo restituisce sempre lo stesso valore. Un esempio quotidiano è il pulsante di un piano in ascensore: premuto una volta avvia il movimento, e pressioni successive non cambiano il comportamento.

Idempotenza nel data integration

Nel contesto del movimento dei dati, l’idempotenza è ciò che rende una pipeline auto-correttiva. Una buona pratica di sincronizzazione è aggiornare i record in modo incrementale, così da non dover risincronizzare l’intero dataset a ogni modifica. Per farlo la pipeline salva un cursore che indica fino a quale riga si è arrivati: legge il progresso salvato, sincronizza solo le righe nuove e registra un nuovo cursore per la sincronizzazione successiva.

Il problema nasce quando un sync fallisce dopo aver scritto una riga ma prima di aver registrato il nuovo cursore. Al tentativo successivo quella riga viene sincronizzata di nuovo. Se la pipeline è idempotente, il risultato finale resta corretto; se non lo è, si ottiene un record duplicato. In un data warehouse reale con miliardi di righe, il problema scala di conseguenza.

Cosa succede senza idempotenza

La conseguenza principale dell’assenza di idempotenza è il caricamento di record duplicati, che comporta tre rischi concreti: insight fuorvianti o errati, perché conteggi, somme, mediane, medie e distribuzioni vengono alterati; operazioni a valle rotte, perché i sistemi che si aspettano una corrispondenza uno-a-uno tra record e identificatori possono generare errori; e spreco di storage e capacità di calcolo, dato che i record in eccesso vanno comunque considerati nelle query e occupano spazio. Per un’azienda che prende decisioni ad alto impatto sui dati, la duplicazione può tradursi in scelte sbagliate, oltre ai costi di riscrivere le query per compensare.

  • Un’operazione idempotente ripetuta non cambia il risultato dopo la prima esecuzione: f(f(x)) = f(x).
  • Con cursori e sync incrementali, l’idempotenza evita i duplicati quando un sync fallisce e viene ripetuto.
  • I record duplicati falsano le analisi, rompono le operazioni a valle e sprecano storage e calcolo.

Fonte: What is idempotence? — https://www.fivetran.com/blog/what-is-idempotence

Condividi X Facebook LinkedIn WhatsApp Email

// scritto da

Fernando

Hai qualcosa da aggiungere? Unisciti alla discussione.

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Altri dell'autore

dalla stessa firma