Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.
Una trasformazione sbagliata, un lotto di record sorgente malformato o un cambiamento imprevisto dello schema possono lasciare le tabelle di una pipeline sbagliate da un momento noto in poi. Rewind riporta la pipeline a un punto precedente al problema, così da poter distribuire una correzione e riprocessare solo i dati interessati.
Rewind ripristina in modo coordinato le versioni delle tabelle, gli offset di origine dello streaming e lo stato dell'operatore, così la riesecuzione non salta record né genera duplicati. Tre operazioni rielaborano i dati e risolvono diversi problemi:
- Rewind si usa per una pipeline ripristinabile che ha scritto dati errati a partire da un momento noto, ad esempio dopo una trasformazione errata, un input malformato o una distribuzione di codice errata. Ripristina i dati della tabella, gli offset della sorgente e lo stato dell'operatore a un punto precedente al problema e rielabora solo i dati interessati, mantenendo lo stato dell'operatore. I dati precedenti a quel punto restano intatti.
- Il refresh completo ricostruisce una tabella con tutti i dati di origine disponibili e ne elimina il contenuto attuale. Usalo per ricalcolare tutto da zero, o quando una modifica di codice non è compatibile con lo stato esistente.
- Il reset del checkpoint recupera una pipeline il cui checkpoint è invalido o corrotto, o bloccata da un cambiamento di codice incompatibile con checkpoint. Resetta il checkpoint e prosegue in avanti preservando il contenuto attuale della tabella. Rewind non può recuperare questi casi, perché non allenta le regole di compatibilità dello Structured Streaming.
Requisiti
| Requisito | Detail |
|---|---|
| Channel | La pipeline deve trovarsi nel canale Anteprima. Vedi Configurare le pipeline. |
| Configuration | Imposta la pipelines.rewind.betaEnabled configurazione della pipeline su true, poi esegui la pipeline una volta. Ogni flusso diventa riavvolgibile solo dopo aver completato un aggiornamento con il viaggio nel tempo abilitato. |
| Modalità pipeline | Pipeline attivate e continue. La modalità in tempo reale non è supportata. |
| Sources | Tabelle Delta, tabelle di streaming, Kafka e Auto Loader. |
| Obiettivi | Tabelle streaming e viste materializzate. |
| Flows | Flussi in streaming e flussi di cattura dati a cambio automatico (CDC), inclusi bersagli SCD Tipo 1 e SCD Tipo 2. Sono supportate query con stato come aggregazioni, join e deduplicazione. |
Ogni flusso nella conduttura deve soddisfare questi requisiti. Mentre pipelines.rewind.betaEnabled è true, una pipeline che contiene un flusso che non soddisfa i requisiti non riesce ad aggiornarsi. Conferma che ogni flusso soddisfi i requisiti sopra prima di attivarlo.
Note
Una pipeline con pipelines.rewind.betaEnabled impostato su true non può tornare al canale Current finché il canale Current non viene aggiornato a un runtime che supporta la reversione.
Come funzionano il riavvolgimento e il rigioco
Riavvolgere e riprodurre sono passaggi separati.
Rewind ripristina ogni tabella alla versione che aveva in corrispondenza di un punto di riavvolgimento e reimposta i checkpoint di streaming che tengono traccia di fino a che punto ogni flusso ha letto. Le tue trasformazioni non vengono eseguite e nessun dato sorgente viene rielaborato.
Replay avviene alla successiva esecuzione della pipeline. Riprocessa dal punto di riavvolgimento usando la definizione attuale della pipeline, si riallinea al presente, quindi riprende la normale elaborazione incrementale. Rewind non avvia la pipeline, quindi avviala manualmente quando sei pronto.
La pipeline genera automaticamente i punti di riavvolgimento, circa una volta all'ora, e li mantiene per 7 giorni. Una pipeline appena creata non ha nulla a cui tornare indietro finché non produce il suo primo risultato.
Il riavvolgimento di un dataset riavvolge anche tutto ciò che è a valle all’interno della stessa pipeline. Rewind copre una sola pipeline. Non coordina con altre pipeline o con lettori esterni delle stesse tabelle, quindi gestisci queste separatamente.
Riavvolgi una pipeline usando l'interfaccia utente
La UI e Genie sono i principali modi per utilizzare Rewind. L'interfaccia indica i punti di riavvolgimento disponibili e mostra quali dataset ciascuno di essi influenza prima di effettuare il commit.
- Nella pagina della tua pipeline, clicca
accanto a Run pipeline, poi clicca su Rewind pipeline.
- Seleziona un punto di riavvolgimento, oppure usa una scorciatoia come Riavvolgi fino a ieri o Riavvolgi fino all'ultimo punto. Fare clic su Avanti.
- Seleziona quali tabelle includere. Usa la vista Grafico per selezionare i dataset nel grafo della pipeline, oppure la vista Lista per selezionarli da una tabella. Lascia selezionato Reimposta tutti i checkpoint (opzione predefinita) per ripristinare gli offset della sorgente e lo stato dell'operatore insieme ai dati della tabella, in modo che la pipeline elabori nuovamente dal punto di riavvolgimento. Cancella per ripristinare solo i dati della tabella, senza rielaborazione, ad esempio quando vuoi ripristinare il contenuto di una tabella ma non vuoi rielaborare i dati interessati. Questa impostazione deve essere la stessa per una tabella e per le relative tabelle upstream e non può essere disattivata per un flusso che legge un'origine esterna come Kafka o Auto Loader. Fare clic su Avanti.
- Rivedi il punto di riavvolgimento, l'impostazione del checkpoint e i dataset interessati, poi clicca su Riavvolgimento.
Avvia la pipeline per riprodurre i dati.
Puoi riavvolgere ripetutamente. Ogni riavvolgimento sostituisce quello precedente, così puoi rimediare a una riproduzione non riuscita riavvolgendo altrove.
Dopo un riavvolgimento
Un guasto alla ripresa lascia la condotta riavvolta ma fermata. Correggi il codice o i dati sorgente e avvia la pipeline per riprovare, oppure riavvolgi a un punto diverso. La pipeline non esegue automaticamente il rollback e gli errori vengono segnalati tramite la diagnostica standard della pipeline e il registro eventi.
La riesecuzione ha esito positivo solo se la definizione corrente della pipeline è compatibile con lo stato ripristinato; il riavvolgimento non deroga alle regole di compatibilità di Structured Streaming. Per quali modifiche sono compatibili, vedi Tipi di modifiche nelle query di Structured Streaming. Le viste materializzate seguono la semantica batch e tollerano cambiamenti più ampi dello schema, ma falliscono comunque se una dipendenza è incompatibile.
Un riavvolgimento che non va a buon fine a metà percorso può lasciare la pipeline parzialmente riavvolta. È possibile procedere in due modi:
- Riavvolgendo nuovamente fino allo stesso punto o a un punto diverso, la pipeline converge in quel punto.
- Per forzare la pipeline ad avviare un aggiornamento normale nonostante il riavvolgimento incompleto, imposta
pipelines.allowUpdateAfterIncompleteRewindsutruee riavvia la pipeline.
Quanto indietro puoi riavvolgere
I punti di riavvolgimento sono conservati per 7 giorni. In quella finestra, un riavvolgimento non riesce se i dati di cui ha bisogno sono già stati rimossi. Controlla questi prima di riavvolgere:
-
VACUUMO un cortometraggiodelta.deletedFileRetentionDurationsui tuoi tavoli. Consulta Lavora con la cronologia delle tabelle. - Un periodo di conservazione dei dati di origine più breve della finestra temporale a cui vuoi tornare indietro, ad esempio un topic Kafka che conserva i dati per un giorno.
Le pipeline con più sorgenti o con lunghe catene di dipendenze necessitano di un periodo di conservazione più lungo, perché ogni tabella e ogni punto di controllo devono poter risalire fino a un punto coerente.
Limitations
- Rewind non può ripristinare una pipeline a uno stato precedente a un aggiornamento completo.
- I punti di ripristino vengono conservati per 7 giorni e il ripristino non riesce se la cronologia della tabella o i dati di origine necessari per tornare a quel punto sono già stati rimossi, ad esempio da
VACUUMo da un breve periodo di conservazione dei dati di origine. Vedi quanto puoi riavvolgere indietro. - La modalità in tempo reale non è supportata.
- Kinesis, Pulsar, Google Pub/Sub e sorgenti personalizzate costruite con le API di sorgenti dati DSv2 o Python non sono supportate come sorgenti.
- I dissipatori esterni e i dissipatori personalizzati non sono supportati, inclusi i dissipatori definiti con
create_sink(). Vedere Usare sink nelle pipeline. - Le tabelle di streaming che utilizzano un filtro a riga o una maschera a colonna non possono essere riavvolte. Vedere Applicare manualmente filtri di riga e maschere di colonna.
- Il rewind con stato richiede l'archivio di stato RocksDB, utilizzato dalle pipeline per impostazione predefinita. Un riavvio non riesce per un flusso configurato con un archivio di stato diverso.
- Alcune tabelle di streaming AUTO CDC necessitano di un aggiornamento prima di poter essere riportate indietro. La pipeline ti avvisa quando richiedi di riavvolgerla.
- Le viste materializzate potrebbero essere ricalcolate completamente anziché essere aggiornate in modo incrementale dopo un riavvolgimento. Vedere aggiornamento incrementale per le viste materializzate.
- Rewind si applica a una pipeline e non si coordina con lettori esterni o con altre pipeline che leggono le stesse tabelle.
- Rewind non ripristina il codice della pipeline, la configurazione della pipeline o i metadati degli oggetti del Catalogo Unity come tag e concessioni.