Passa al contenuto principale

Introduzione a Delta Time Travel per data lake su larga scala

Introducing Delta Time Travel for Large Scale Data Lakes

Pubblicato: 4 febbraio 2019

Annunci6 min di lettura

Ottieni un'anteprima del nuovo ebook di O'Reilly per le istruzioni dettagliate necessarie per iniziare a utilizzare Delta Lake.


Controllo delle versioni dei dati per riprodurre esperimenti, eseguire il rollback e controllare i dati

Siamo entusiasti di presentare le funzionalità di time travel in Databricks Delta Lake, il motore di analisi unificato di nuova generazione basato su Apache Spark, per tutti i nostri utenti. Con questa nuova funzionalità, Delta crea automaticamente versioni dei big data archiviati nel tuo data lake e puoi accedere a qualsiasi versione precedente di tali dati. Questa gestione temporale dei dati semplifica la pipeline di dati, semplificando il controllo, il rollback dei dati in caso di scritture o eliminazioni errate accidentali e la riproduzione di esperimenti e report. La tua organizzazione può finalmente standardizzare un repository di big data pulito, centralizzato e con controllo delle versioni nel tuo spazio di archiviazione cloud per l'analisi.

Problemi comuni con la modifica dei dati

  • Controllare le modifiche ai dati: il controllo delle modifiche ai dati è fondamentale sia in termini di conformità dei dati sia per il semplice debug per capire come i dati sono cambiati nel tempo. Le organizzazioni che passano dai sistemi di dati tradizionali alle tecnologie di big data e al cloud riscontrano difficoltà in questi scenari.
  • Riprodurre esperimenti e report: durante il training del modello, i data scientist eseguono vari esperimenti con parametri diversi su un determinato set di dati. Quando gli scienziati rivisitano i loro esperimenti dopo un periodo di tempo per riprodurre i modelli, in genere i dati di origine sono stati modificati dalle pipeline upstream. Molte volte, vengono colti alla sprovvista da tali modifiche ai dati upstream e quindi faticano a riprodurre i loro esperimenti. Alcuni scienziati e organizzazioni progettano best practice creando più copie dei dati, con conseguente aumento dei costi di archiviazione. Lo stesso vale per gli analisti che generano report.
  • Rollback: le pipeline di dati a volte possono scrivere dati errati per i consumer downstream. Ciò può accadere a causa di problemi che vanno dalle instabilità dell'infrastruttura ai dati disordinati ai bug nella pipeline. Per le pipeline che eseguono semplici aggiunte a directory o a una tabella, è possibile risolvere facilmente i rollback tramite il partizionamento basato sulla data. Con aggiornamenti ed eliminazioni, questo può diventare molto complicato e i data engineer in genere devono progettare una pipeline complessa per gestire tali scenari.

Introduzione al Time Travel

Le funzionalità di time travel di Delta semplificano la creazione di pipeline di dati per i casi d'uso di cui sopra. Quando scrivi in una tabella o directory Delta, ogni operazione viene automaticamente versionata. Puoi accedere alle diverse versioni dei dati in due modi diversi:

1. Utilizzo di un timestamp

Sintassi Scala:

Puoi fornire il timestamp o la stringa di data come opzione al lettore DataFrame:

In Python:

Sintassi SQL:

Se il codice del lettore si trova in una libreria a cui non hai accesso e se stai passando parametri di input alla libreria per leggere i dati, puoi comunque tornare indietro nel tempo per una tabella passando il timestamp in formato yyyyMMddHHmmssSSS al percorso:

2. Utilizzo di un numero di versione
In Delta, ogni scrittura ha un numero di versione e puoi utilizzare il numero di versione anche per tornare indietro nel tempo.

Sintassi Scala:

Sintassi Python:

LEADER PER LA 5ª VOLTA

Gartner®: Databricks leader dei database cloud

Sintassi SQL:

Controllare le modifiche ai dati

Puoi esaminare la cronologia delle modifiche alla tabella utilizzando il comando DESCRIBE HISTORY o tramite l'interfaccia utente.

Riprodurre esperimenti e report

Il time travel svolge anche un ruolo importante nel machine learning e nella data science. La riproducibilità dei modelli e degli esperimenti è una considerazione chiave per i data scientist, perché spesso creano centinaia di modelli prima di metterne uno in produzione e, in questo processo dispendioso in termini di tempo, vorrebbero tornare ai modelli precedenti. Tuttavia, poiché la gestione dei dati è spesso separata dagli strumenti di data science, questo è davvero difficile da realizzare.

Databricks risolve questo problema di riproducibilità integrando le funzionalità di time-travel di Delta con MLflow, una piattaforma open source per il ciclo di vita del machine learning. Per un training di machine learning riproducibile, puoi semplicemente registrare un URL con timestamp nel percorso come parametro MLflow per tenere traccia di quale versione dei dati è stata utilizzata per ogni processo di training. Ciò ti consente di tornare alle impostazioni e ai set di dati precedenti per riprodurre i modelli precedenti. Non è necessario coordinarsi con i team upstream sui dati né preoccuparsi di clonare i dati per diversi esperimenti. Questo è il potere di Unified Analytics, in cui la data science è strettamente legata al data engineering.

Rollback

Il time travel semplifica anche l'esecuzione di rollback in caso di scritture errate. Ad esempio, se il tuo processo della pipeline GDPR aveva un bug che ha eliminato accidentalmente le informazioni dell'utente, puoi correggere facilmente la pipeline:

Puoi anche correggere aggiornamenti errati come segue:

Visualizzazione bloccata di una tabella Delta in continuo aggiornamento tra più processi downstream

Con le query AS OF, ora puoi bloccare lo snapshot di una tabella Delta in continuo aggiornamento per più processi downstream. Considera una situazione in cui una tabella Delta viene continuamente aggiornata, ad esempio ogni 15 secondi, e c'è un processo downstream che legge periodicamente da questa tabella Delta e aggiorna diverse destinazioni. In tali scenari, in genere si desidera una visualizzazione coerente della tabella Delta di origine in modo che tutte le tabelle di destinazione riflettano lo stesso stato. Ora puoi gestire facilmente tali scenari come segue:

Query per l'analisi delle serie temporali semplificate

Il time travel semplifica anche l'analisi delle serie temporali. Ad esempio, se vuoi scoprire quanti nuovi clienti hai aggiunto nell'ultima settimana, la tua query potrebbe essere molto semplice come questa:

Conclusione

Il time travel in Delta migliora enormemente la produttività degli sviluppatori. Aiuta:

  • I data scientist gestiscono meglio i loro esperimenti
  • I data engineer semplificano le loro pipeline ed eseguono il rollback delle scritture errate
  • I data analyst eseguono report semplici

Le organizzazioni possono finalmente standardizzare un repository di big data pulito, centralizzato e con controllo delle versioni nel proprio spazio di archiviazione cloud per l'analisi. Siamo entusiasti di vedere cosa sarai in grado di realizzare con questa nuova funzionalità.

La funzionalità è disponibile come anteprima pubblica per tutti gli utenti. Scopri di più sulla funzionalità. Per vederla in azione, registrati per una prova gratuita di Databricks.

Ti interessa l'open source Delta Lake?
Visita l'hub online di Delta Lake per saperne di più, scaricare l'ultimo codice e unirti alla community di Delta Lake.

(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale

Non perdere mai un post di Databricks

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