Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Úplná aktualizace streamované tabulky zahodí všechna existující data a metadata a restartuje stream od začátku. Konkrétně zkrátí streamovací tabulku, odebere všechna data kontrolních bodů a restartuje proces streamování s novými kontrolními body pro každý tok, který do tabulky zapisuje. Tato stránka popisuje, kdy může být nutné spustit úplnou aktualizaci, a dopad spuštění úplné aktualizace. Obsahuje také osvědčené postupy týkající se úplných aktualizací.
Pokyny k aktivaci úplné aktualizace najdete v tématu Spuštění aktualizace kanálu.
Dopad na zdroje dat
Úplná aktualizace odebere všechna existující data ze streamované tabulky. Pokud má váš zdroj dat limity uchovávání dat , jako jsou témata Kafka s krátkými dobami uchovávání, můžou se některá historická data po úplné aktualizaci stát nedostupnou.
Pokud je zdrojem například Kafka s 24hodinovým uchováváním a po tomto okně spustíte úplnou aktualizaci, starší zprávy už nebudou dostupné a nejde je znovu zpracovat.
Poznámka:
Úplné obnovy se nedoporučují pro úlohy streamování s velkým objemem zátěže nebo pokud uchovávání dat v upstreamu brání přehrání historických dat.
Pokud streamovací tabulka obsahuje závislé odvozené tabulky, kanál selže, dokud tyto tabulky nebudou také plně aktualizovány, pokud není u streamovací tabulky povolena funkce skipChangeCommits. Podřízená materializovaná zobrazení musí být také plně aktualizována.
Kdy spustit úplnou aktualizaci
Úplné aktualizace v deklarativních kanálech Lakeflow Spark se musí aktivovat explicitně. Úplnou aktualizaci můžete spustit kliknutím na Úplné aktualizace v uživatelském rozhraní kanálu nebo povolením automatické úplné aktualizace ve službě Lakeflow Connect.
Úplná aktualizace se doporučuje, když změny brání v bezpečném obnovení streamovaného dotazu z existujícího kontrolního bodu nebo když by dříve zpracovávaná data byla nekonzistentní s aktualizovanou logikou, schématem nebo konfigurací zdroje. Následující části popisují běžné scénáře.
Změny schémat
Následující změny schématu v cílové tabulce nejsou zpětně kompatibilní a vyžadují úplnou aktualizaci:
- Přejmenování sloupců bez povoleného režimu mapování sloupců
- Změna deduplikačních sloupců
- Úprava datových typů sloupců, včetně:
- Zúžení typu (například
BIGINT → INTneboDOUBLE → FLOAT) - Nekompatibilní změny typu (například
STRING → INT).
- Zúžení typu (například
- Pevné odstranění sloupců ze schématu tabulky
Pro tyto typy změn schématu databricks doporučuje vytvořit nový sloupec s požadovaným schématem nebo názvem a pak pomocí zobrazení nad tabulkou streamování sjednocovat staré a nové hodnoty.
Změny rozložení fyzických dat
Následující změny rozložení fyzických dat vyžadují úplnou aktualizaci:
- Migrace ze starší verze dělení na nové schéma clusteringu
Změny zdroje v upstreamu
Následující nadřazené změny zdroje vyžadují úplnou aktualizaci:
- Úprava zdrojových tabulek čtených streamovacím dotazem.
- Přepínání mezi typy zdrojů (například Kafka na Delta nebo Auto Loader na Kafka).
- Změna zdrojových umístění, jako jsou cesty k tabulce nebo přihlášení k odběru témat Kafka.
- Vyřazení a opětovné vytvoření zdrojové tabulky Delta, i když schéma zůstane beze změny.
Změny stavového zpracování
Následující stavové změny zpracování vyžadují úplnou aktualizaci:
- Úprava seskupovacích klíčů pro agregaci nebo agregačních funkcí.
- Přidání nebo odebrání agregací
- Změna spojovacích klíčů nebo typů spojení
- Přidávání nebo odebírání spojení
- Úprava sloupců odstranění duplicitních dat nebo logiky odstranění duplicit
Problémy se kontinuitou dat
Pokud dojde k ohrožení kontinuity dat, může se vyžadovat úplná aktualizace:
- Kvůli vypršení platnosti uchovávání se protokoly CDC nedostupné.
- Poškození nebo odstranění adresáře kontrolního bodu streamingu.
- Poškození nebo ztráta monitorování schématu nebo souborů umístění schématu
Další informace o obnovení kanálu z selhání kontrolního bodu najdete v tématu Obnovení kanálu ze selhání kontrolního bodu streamování.
Omezení
Následující omezení platí pro úplné aktualizace. Informace, které vám pomůžou pracovat v rámci těchto omezení, najdete v osvědčených postupech .
- Úplná aktualizace nezpracovává data znovu, pokud zdroj nezachová úplnou historickou datovou sadu.
- Velké datové sady můžou provádět úplné aktualizace nákladně a časově náročné.
- Podřízení příjemci, kteří závisí na tabulce, můžou selhat nebo vrátit neúplné výsledky, dokud se aktualizace nedokončila.
Osvědčené postupy
| Situace | Osvědčené postupy |
|---|---|
| Návrh pro stabilitu | Naplánujte schéma tak, aby se zabránilo změnám, které vyžadují úplnou aktualizaci. Přidávání sloupců je obecně bezpečné, zatímco úpravy existujících sloupců nebo schémat oddílů obvykle vyžadují překomputování tabulky. |
| Streamování ze zdrojů s krátkými dobami uchovávání | Streamování ze zdrojů, jako je téma Kafka, které nemají dlouhou dobu uchovávání, znamená, že úplná aktualizace ztratí data, která ještě nejsou ve zdroji. Aby nedošlo ke ztrátě historických dat, převeďte nezpracovaná data do tabulky datového proudu (bronzová tabulka v architektuře medailónu). Pokud se změní nadřazená data, použijte flexibilní typy sloupců (například variantu nebo řetězec), abyste se vyhnuli této tabulce, která vyžaduje úplnou aktualizaci. Tato tabulka může ukládat historická data, která mohou používat podřízené streamovací tabulky (které mohou mít přísnější typy nebo jiné strukturální změny). Pokud podřízené tabulky vyžadují úplnou aktualizaci, tato tabulka obsahuje historická data a nevyžaduje úplnou aktualizaci. |
| Zvažte alternativy před spuštěním úplné aktualizace. | Mezi alternativy patří:
|
| Pokud je vyžadována úplná aktualizace | Pokud je vyžadována úplná aktualizace, postupujte podle těchto osvědčených postupů:
|
Pokud chcete obnovit data po úplné aktualizaci, můžete vytvořit append oncetok. Tím se provede jednorázové doplnění, aniž by pokračovalo ve spuštění po prvním doplnění. Kód zůstane ve vašem datovém kanálu a pokud dojde k plné aktualizaci, znovu se spustí doplnění chybějících dat.