Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
En dålig transformation, en felaktig batch källposter eller en oväntad schemaändring kan lämna pipelinens tabeller felaktiga från en känd tidpunkt och framåt. Rewind returnerar pipelinen till en punkt före problemet så att du kan distribuera en fix och bara bearbeta den drabbade datan.
Rewind återställer tabellversioner, offsetar för strömmande källor och operatorstatus tillsammans, så att omspelning inte hoppar över poster eller skriver dubbletter. Tre operationer bearbetar data och löser olika problem:
- Rewind är för en återställbar pipeline som skrev felaktig data från en känd tidpunkt, till exempel efter en dålig transformation, felaktig indata eller en dålig koddistribution. Den återställer tabelldata, källoffsets och operatörstillstånd till en punkt före problemet och bearbetar endast den drabbade datan, samtidigt som operatörens tillstånd bevaras. Data före den punkten är orörd.
- Full refresh bygger om en tabell från all tillgänglig källdata och kasserar dess nuvarande innehåll. Använd den för att beräkna om allt från grunden, eller när en kodändring inte är kompatibel med det befintliga tillståndet.
- Checkpoint-återställning återställer en pipeline vars checkpoint är ogiltig eller korrupt, eller som blockeras av en kodändring som är inkompatibel med checkpoint. Den återställer kontrollpunkten och fortsätter framåt samtidigt som bordets nuvarande innehåll bevaras. Rewind kan inte återställa dessa fall eftersom det inte släpper på kompatibilitetsreglerna för strukturerad streaming.
Requirements
| Krav | Detail |
|---|---|
| Channel | Pipelinen måste vara på Preview-kanalen. Se Konfigurera arbetsflöden. |
| Configuration | Ställ in pipelines.rewind.betaEnabled pipelinekonfigurationen till true, kör sedan pipelinen en gång. Varje flöde går att spola tillbaka först efter att det har slutfört en uppdatering med tidsresefunktionen aktiverad. |
| Dataflödesläge | Triggade och kontinuerliga pipelines. Realtidsläge stöds inte. |
| Sources | Delta-tabeller, strömmande tabeller, Kafka och Auto Loader. |
| Targets | Strömmande tabeller och materialiserade vyer. |
| Flows | Strömmande flöden och AUTO-flöden för ändringsdatainsamling (CDC), inklusive mål av typen SCD typ 1 och SCD typ 2. Tillståndsbevarande frågor såsom aggregeringar, sammanfogningar och borttagning av dubbletter stöds. |
Varje flöde i pipelinen måste uppfylla dessa krav. Medan pipelines.rewind.betaEnabled är true misslyckas uppdateringarna för en pipeline som innehåller ett flöde som inte uppfyller kraven. Bekräfta att varje flöde uppfyller ovanstående krav innan du aktiverar det.
Note
En pipeline som har pipelines.rewind.betaEnabled inställd på true kan inte flyttas tillbaka till Current-kanalen förrän Current-kanalen uppdateras till en körningsmiljö som har stöd för återgång.
Så fungerar tillbakaspolning och uppspelning igen
Spola tillbaka och spela upp är separata steg.
Spola tillbaka återställer varje tabell till den version som den hade vid en återspolningspunkt och återställer kontrollpunkterna för strömning som spårar hur långt varje flöde har läst. Dina transformationer körs inte, och ingen källdata återbearbetas.
Repris sker nästa gång pipelinen körs. Den ombearbetar från återspolningspunkten med den aktuella pipeline-definitionen, kommer fram till nuläget och återupptar sedan normal inkrementell bearbetning. Rewind startar inte pipelinen, så starta den själv när du är redo.
Pipelinen genererar automatiskt spolningspunkter ungefär en gång i timmen och sparar dem i 7 dagar. En pipeline du just skapat har inget att spola tillbaka till förrän den producerar sin första.
Att återställa en datamängd återställer också allt som ligger nedströms från den i samma pipeline. Rewind täcker en pipeline. Den samordnar inte med andra pipelines eller med externa läsare av samma tabeller, så hantera dessa separat.
Spola tillbaka en pipeline med hjälp av UI:t
Användargränssnittet och Genie är de huvudsakliga sätten att använda Rewind. Gränssnittet listar de tillgängliga återställningspunkterna och visar vilka datamängder var och en påverkar innan du bekräftar.
- På pipelinesidan klickar du på knappen
bredvid Kör pipeline och klickar sedan på Spola tillbaka pipeline.
- Välj en spolningspunkt, eller använd en genväg som Spola tillbaka till igår eller Spola tillbaka till den senaste punkten. Klicka på Nästa.
- Välj vilka tabeller som ska inkluderas. Använd grafvyn för att välja dataset i pipelinegrafen, eller listvyn för att välja dem från en tabell. Lämna Återställ alla kontrollpunkter markerat (standardalternativet) för att återställa källoffsetar och operatörstillstånd tillsammans med data i tabellen, så att pipelinen bearbetar om från återspolningspunkten. Rensa den för att återställa endast tabelldata, utan ombearbetning, till exempel när du vill återställa en tabells innehåll men inte vill bearbeta den berörda datan igen. Denna inställning måste vara densamma för en tabell och dess uppströms, och den kan inte rensas för ett flöde som läser en extern källa som Kafka eller Auto Loader. Klicka på Nästa.
- Gå igenom spolningspunkten, kontrollpunkten och de berörda dataseten, klicka sedan på Spola tillbaka.
Starta pipelinen för att spela upp datan igen.
Du kan spola tillbaka flera gånger. Varje spolning ersätter den förra, så du kan återhämta dig från en misslyckad omspelning genom att spola tillbaka någon annanstans.
Efter en spolning tillbaka
Ett omspelningsfel lämnar pipelinen tillbakaspolad men stoppad. Fixa koden eller källdatan och starta pipelinen för att försöka igen, eller spola tillbaka till en annan punkt. Pipelinen rullar inte tillbaka av sig själv, och fel dyker upp genom standarddiagnostik av pipeline och händelseloggen.
Replay lyckas endast om den nuvarande pipelinedefinitionen är kompatibel med det återställda tillståndet; rewind släpper inte på reglerna för strukturerad streaming-kompatibilitet. För vilka ändringar som är kompatibla, se Typer av ändringar i strukturerade strömningsfrågor. Materialiserade vyer följer batchsemantik och tolererar bredare schemaändringar, men misslyckas ändå om ett beroende är inkompatibelt.
En tillbakadragning som misslyckas delvis kan lämna ledningen delvis uppspolad. Du har två alternativ:
- Spola tillbaka igen till samma punkt eller en annan, och pipelinen konvergerar mot den punkten.
- För att tvinga pipelinen att starta en normal uppdatering trots den ofullständiga återspolningen, ställ in
pipelines.allowUpdateAfterIncompleteRewindpåtrueoch starta sedan om pipelinen.
Hur långt tillbaka kan du spola tillbaka
Spolningspunkterna sparas i 7 dagar. Inom den tidsramen misslyckas en återspolning om de data som krävs redan har tagits bort. Kontrollera dessa innan du förlitar dig på att spola tillbaka:
-
VACUUMEller en kortfilmdelta.deletedFileRetentionDurationpå era bord. Se Arbeta med tabellhistorik. - Källagringstiden är kortare än det fönster du vill kunna spola tillbaka över, till exempel ett Kafka-topic som behåller data i en dag.
Pipelines med flera källor eller långa beroendekedjor behöver längre lagringstid, eftersom varje tabell och kontrollpunkt måste kunna spåras tillbaka till en konsekvent tidpunkt.
Limitations
- Rewind kan inte återställa en pipeline till en punkt före en fullständig uppdatering.
- Återställningspunkter sparas i 7 dagar, och en återställning misslyckas om tabellhistoriken eller källdata som behövs för att nå punkten redan har tagits bort, till exempel genom
VACUUMeller kort lagringstid för källdata. Se hur långt tillbaka du kan spola tillbaka. - Realtidsläge stöds inte.
- Kinesis, Pulsar, Google Pub/Sub och anpassade källor byggda med DSv2- eller Python-datakälls-API:er stöds inte som källor.
- Externa och anpassade sänkar stöds inte, inklusive sänkar definierade med
create_sink(). Se Använda mottagare i pipelines. - Streamingtabeller som använder ett radfilter eller en kolumnmask kan inte återställas. Se Tillämpa radfilter och kolumnmasker manuellt.
- Stateful rewind kräver RocksDB-tillståndslagret, vilket pipelineer använder som standard. Det går inte att återspola ett flöde som är konfigurerat med ett annat tillståndslager.
- Vissa AUTO CDC-streamingtabeller behöver uppdateras innan de kan spolas tillbaka. Arbetsflödet meddelar dig när du begär återspolning.
- Materialiserade vyer kan omberäknas fullständigt i stället för att uppdateras inkrementellt efter en återställning. Se Inkrementell uppdatering för materialiserade vyer.
- Rewind täcker en pipeline och koordinerar inte med externa läsare eller andra pipelines som läser samma tabeller.
- Rewind återställer inte pipelinekod, pipelinekonfiguration eller Unity Catalog-objektmetadata såsom taggar och bidrag.