Vraťte a znovu spusťte kanál

Important

Tato funkce je v beta verzi. Správci pracovního prostoru můžou řídit přístup k této funkci ze stránky Previews . Viz Manage Azure Databricks preview.

Špatná transformace, poškozená dávka zdrojových záznamů nebo neočekávaná změna schématu mohou způsobit, že tabulky v pipeline budou od určitého známého okamžiku nadále nesprávné. Rewind vrátí pipeline do stavu před problémem, abyste mohli nasadit opravu a znovu zpracovat pouze postižená data.

Přetočení zpět obnovuje verze tabulek, posuny streamovaného zdroje a stav operátora dohromady, takže přehrávání nepřeskočí záznamy ani nezapisuje duplikáty. Tři operace zpracovávají data a řeší různé problémy:

  • Přetočení zpět je určeno pro obnovitelnou pipeline, která od známého časového okamžiku zapisovala nesprávná data, například po chybné transformaci, chybně formátovaném vstupu nebo chybném nasazení kódu. Obnovuje data tabulky, posun zdroje a stav operátora na bod před problémem a znovu zpracovává pouze postižená data, přičemž zachovává stav operátora. Data před tímto bodem zůstávají nedotčená.
  • Plná obnova znovu sestaví tabulku ze všech dostupných zdrojových dat a vyřadí její aktuální obsah. Použijte ho k přepočítání všeho od začátku, nebo když změna kódu není kompatibilní se stávajícím stavem.
  • Resetování kontrolního bodu obnovuje pipeline, jehož kontrolní bod je neplatný nebo poškozený, nebo který je zablokován změnou kódu nekompatibilní s kontrolními body. Resetuje kontrolní bod a pokračuje dál, přičemž zachová aktuální obsah tabulky. Rewind nemůže v těchto případech obnovit data, protože neuvolňuje pravidla kompatibility se Structured Streaming.

Požadavky

Requirement Detail
Channel Pipeline musí být v kanálu Preview. Viz Konfigurace kanálů.
Configuration Nastavte konfiguraci pipelines.rewind.betaEnabled pipeline na true a poté pipeline jednou spusťte. Každý tok se dá přetáčet zpět až po dokončení aktualizace s povoleným cestováním časem.
Režim potrubí Spouštěné a kontinuální pipeline. Režim v reálném čase není podporován.
Sources Delta tabulky, streamovací tabulky, Kafka a Auto Loader.
Targets Streamované tabulky a materializované pohledy.
Flows Streamovací toky a toky AUTO change data capture (CDC), včetně cílů SCD typu 1 a SCD typu 2. Jsou podporovány stavové dotazy, jako jsou agregace, spoje a deduplikace.

Každý průtok v potrubí musí tyto požadavky splňovat. Zatímco pipelines.rewind.betaEnabled je true, pipeline obsahující tok, který nesplňuje požadavky, nedokončí své aktualizace. Ověřte si, že každý tok splňuje výše uvedené požadavky, než ho povolíte.

Note

Pipeline, která má pipelines.rewind.betaEnabled nastavené na true, se nemůže přepnout zpět na kanál Current, dokud nebude kanál Current aktualizován na runtime, který podporuje návrat zpět.

Jak funguje přetáčení a přehrávání

Přetočení zpět a přehrávání jsou samostatné kroky.

Přetočení vrátí každou tabulku do verze, kterou měla v bodě přetočení , a resetuje kontrolní body streamování, které sledují, jak daleko každý tok přečetl. Vaše transformace se nespustí a žádná zdrojová data nejsou znovu zpracovávána.

Opakování proběhne při příštím spuštění kanálu. Znovu se zpracuje od bodu převinutí podle aktuální definice kanálu zpracování, dohoní aktuální stav a poté pokračuje v běžném inkrementálním zpracování. Točení zpět nespustí pipeline, takže ho spusťte sami, až budete připraveni.

Pipeline automaticky generuje body pro přetočení zpět, přibližně jednou za hodinu, a uchovává je 7 dní. Pipeline, který jste právě vytvořili, nemá kam se vracet, dokud nevytvoří svůj první.

Přetočení datové sady také přetočí vše, co na ni v rámci stejného kanálu navazuje. Rewind pokrývá jeden kanál. Nekoordinuje se s jinými pipeline ani s externími čtenáři stejných tabulek, proto je spravujte samostatně.

Přetočte pipeline zpět pomocí UI

Uživatelské rozhraní a Genie jsou hlavní způsoby používání Rewind. Uživatelské rozhraní zobrazuje dostupné body návratu a před potvrzením ukazuje, které datové sady každý z nich ovlivňuje.

  1. Na stránce kanálu klikněte na tlačítko ikony šipky dolů vedle Run pipeline a potom klikněte na Rewind pipeline.
  2. Vyberte bod pro přetočení zpět, nebo použijte zkratku, například Přetočte zpět do včerejška nebo Vraťte zpět do nejpozdějšího bodu. Klikněte na tlačítko Další.
  3. Vyberte tabulky, které zahrnout. Použijte pohled Graf k výběru datových sad v grafu pipeline nebo zobrazení Seznam pro jejich výběr z tabulky. Nechte vybranou možnost Resetovat všechny kontrolní body (ve výchozím nastavení), aby se spolu s daty tabulky obnovily zdrojové offsety a stav operátoru, takže se kanál znovu zpracuje od bodu přetočení. Vyřiďte to pouze pro obnovu dat tabulky, bez opětovného zpracování, například když chcete obnovit obsah tabulky, ale nechcete znovu zpracovávat postižená data. Toto nastavení musí být stejné pro tabulku a její upstreamy a nelze jej vymazat pro tok, který čte externí zdroj, jako je Kafka nebo Auto Loader. Klikněte na tlačítko Další.
  4. Prohlédněte si bod přetočení, nastavení kontrolního bodu a dotčené datové sady, pak klikněte na Přetočení zpět.

Spusť pipeline pro přehrávání dat.

Můžete se opakovaně vracet zpět. Každý návrat zpět nahradí ten předchozí, takže se po nepovedeném opakovaném přehrání můžete obnovit návratem do jiného místa.

Po převinutí zpět

Selhání při opakování způsobí, že se pipeline vrátí zpět, ale zůstane zastavená. Opravte kód nebo zdrojová data a spusťte pipeline, abyste to zkusili znovu, nebo se vrátili zpět na jiný čas. Kanál neprovede automaticky vrácení změn a chyby se zobrazují prostřednictvím standardní diagnostiky kanálu a protokolu událostí.

Opakování je úspěšné pouze tehdy, pokud je aktuální definice pipeline kompatibilní s obnoveným stavem; rewind neuvolňuje pravidla kompatibility strukturovaného streamování. Pro které změny jsou kompatibilní, viz Typy změn ve strukturovaných dotazech streamování. Materializované pohledy následují dávkovou sémantiku a tolerují širší změny schématu, ale stále selhávají, pokud je závislost nekompatibilní.

Přetáčení, které selže částečně, může způsobit, že potrubí bude částečně přetočené. Máte dvě možnosti:

  1. Vraťte se znovu do stejného nebo jiného bodu a pipeline konverguje k tomuto bodu.
  2. Chcete-li vynutit, aby pipeline spustila normální aktualizaci i přes neúplné vrácení zpět, nastavte pipelines.allowUpdateAfterIncompleteRewind na true a restartujte pipeline.

Jak daleko se dá přetočit zpět

Body obnovení se uchovávají po dobu 7 dnů. V tomto okně se přetočení zpět nestane, pokud již byla potřebná data odstraněna. Než se budete spoléhat na vrácení zpět, zkontrolujte následující:

  • VACUUM nebo zkratka delta.deletedFileRetentionDuration na stolech. Viz Práce s historií tabulek.
  • Doba uchovávání zdroje je kratší než časové okno, přes které se chcete vrátit zpět, například téma v systému Kafka, které uchovává data po dobu jednoho dne.

Pipeline s několika zdroji nebo dlouhými řetězci závislostí potřebují delší dobu uchovávání, protože každá tabulka a každý checkpoint se musí umět vrátit ke konzistentnímu bodu.

Omezení

  • Rewind nemůže vrátit pipeline do stavu před úplnou aktualizací.
  • Body obnovení se uchovávají po dobu 7 dnů a obnovení se nezdaří, pokud již byla odstraněna historie tabulky nebo zdrojová data potřebná k návratu do daného bodu, například kvůli VACUUM nebo krátké době uchovávání zdrojových dat. Podívejte se, jak daleko zpět můžete přetočit.
  • Režim v reálném čase není podporován.
  • Kinesis, Pulsar, Google Pub/Sub a vlastní zdroje vytvořené pomocí API datových zdrojů DSv2 nebo Python nejsou podporovány jako zdroje.
  • Externí a vlastní dřezy nejsou podporovány, včetně dřezů definovaných pomocí create_sink(). Viz Použití jímek v kanálech.
  • Streamovací tabulky, které používají řádkový filtr nebo sloupcovou masku, nelze přetáčet zpět. Viz Ruční použití filtrů řádků a masek sloupců.
  • Stavové přetáčení vyžaduje úložiště stavů RocksDB, které pipeline používají ve výchozím nastavení. Přetáčení zpět selže u toku nakonfigurovaného s jiným úložištěm stavu.
  • Některé streamovací tabulky AUTO CDC potřebují obnovu, než je lze přetočit. Pipeline vás upozorní, když o přetočení požádáte.
  • Materializované pohledy se po vrácení zpět mohou zcela přepočítat místo toho, aby se postupně obnovovaly. Viz Přírůstková aktualizace pro materializovaná zobrazení.
  • Rewind se vztahuje pouze na jednu pipeline a nekoordinuje se s externími čtečkami ani s jinými pipeline, které čtou stejné tabulky.
  • Rewind neobnovuje kód pipeline, konfiguraci pipeline ani metadata objektů Unity Catalog, jako jsou tagy a oprávnění.

Dodatečné zdroje