Spustit aktualizaci pipeline

Tento článek vysvětluje aktualizace pipeline a obsahuje podrobnosti o tom, jak spustit aktualizaci.

Co je aktualizace pipeline?

Po vytvoření pipeliny a když jste připraveni ji spustit, zahájíte aktualizaci. Aktualizace pipeline provede následující:

  • Spustí cluster se správnou konfigurací.
  • Vyhledá všechny definované tabulky a zobrazení a vyhledá všechny chyby analýzy, jako jsou neplatné názvy sloupců, chybějící závislosti a chyby syntaxe.
  • Vytvoří nebo aktualizuje tabulky a zobrazení s nejnovějšími dostupnými daty.

Pomocí suchého spuštění můžete zjistit problémy ve zdrojovém kódu pipeline bez čekání na vytvoření nebo aktualizaci tabulek. Tato funkce je užitečná při vývoji nebo testování kanálů, protože umožňuje rychle vyhledat a opravit chyby v kanálu, jako jsou nesprávné názvy tabulek nebo sloupců.

Jak se aktivují aktualizace potrubí?

Pro zahájení aktualizací pipeline použijte jednu z následujících možností:

Spouštěč aktualizace Podrobnosti
Příručka Aktualizace kanálu můžete aktivovat ručně z Editoru kanálů Lakeflow nebo ze seznamu kanálů. Viz Ruční spuštění aktualizace potrubí.
Scheduled Aktualizace pipelinek můžete naplánovat pomocí úloh. Viz úloha kanálu pro úlohy.
Programmatic Můžete programově spustit aktualizace pomocí nástrojů, rozhraní API a CLI třetích stran. Viz Spuštění datových toků v pracovním postupu a rozhraní REST API pipeline.

Ruční spuštění aktualizace potrubí

K ručnímu spuštění aktualizace pipeline použijte jednu z následujících možností:

  • Spusťte celý kanál nebo podmnožinu kanálu (jeden zdrojový soubor nebo jednu tabulku) z Editoru kanálů Lakeflow. Další informace najdete v tématu Spuštění kódu pipeliny.
  • Spusťte celý kanál ze seznamu Úlohy a Kanály . Klikněte na ikonu Přehrát. Ve stejném řádku jako kanál v seznamu.
  • Na stránce monitorování potrubí klikněte na tlačítko Start LDP.

Poznámka:

Výchozí chování pro ručně aktivované aktualizace kanálu spočívá v aktualizaci všech datových sad definovaných v kanálu.

sémantika obnovení potrubí

Následující tabulka popisuje výchozí chování při aktualizaci, úplné aktualizaci a resetování kontrolních bodů pro materializovaná zobrazení a streamované tabulky:

Typ aktualizace Materializované zobrazení Tabulka pro streamování
Aktualizovat (výchozí) Aktualizuje výsledky tak, aby odrážely aktuální výsledky pro definující dotaz. Zkontroluje náklady a provede přírůstkovou aktualizaci, pokud je nákladově efektivnější. Zobrazit přírůstkovou aktualizaci pro materializovaná zobrazení Zpracovává nové záznamy prostřednictvím logiky definované v tabulkách a tocích streamování.
Úplná aktualizace Aktualizuje výsledky tak, aby odrážely aktuální výsledky pro definující dotaz. Vymaže data ze streamovaných tabulek, vymaže informace o stavu (kontrolní body) z toků a znovu zpracuje všechny záznamy ze zdroje dat. Viz úplná aktualizace streamovaných tabulek
Resetování kontrolních bodů toku streamování Nevztahuje se na materializovaná zobrazení. Vymaže informace o stavu (kontrolní body) z toků, ale nevymaže data ze streamovaných tabulek a znovu zpracuje všechny záznamy ze zdroje dat.

Ve výchozím nastavení je, že veškerá materializovaná zobrazení a streamované tabulky v rámci datového toku se obnovují při každé aktualizaci. Tabulky můžete volitelně vynechat z aktualizací pomocí následujících funkcí:

Obě tyto funkce podporují výchozí sémantiku aktualizace nebo úplnou aktualizaci. Volitelně můžete pomocí dialogového okna Vybrat tabulky pro aktualizaci vyloučit další tabulky při spuštění aktualizace pro neúspěšné tabulky.

U streamovaných tabulek se můžete rozhodnout vymazat kontrolní body streamování pro vybrané toky, a ne data z přidružených streamovaných tabulek. Pokud chcete vymazat kontrolní body pro vybrané toky, spusťte aktualizaci pomocí rozhraní REST API Databricks. Podívejte se na zahájení aktualizace pipeline ke zrušení kontrolních bodů selektivních toků streamování.

Mám použít úplnou aktualizaci?

Databricks doporučuje spustit úplné aktualizace jenom v případě potřeby. Úplná aktualizace vždy znovu zpracuje všechny záznamy ze zadaných zdrojů dat prostřednictvím logiky, která definuje datovou sadu. Doba a prostředky k dokončení úplné aktualizace odpovídají velikosti zdrojových dat.

Materializovaná zobrazení vrací stejné výsledky bez ohledu na to, jestli se používá výchozí nebo úplná aktualizace. Použití úplné aktualizace se streamovanými tabulkami resetuje veškeré informace o zpracování stavu a kontrolních bodů a může vést ke ztrátě záznamů, pokud už nejsou vstupní data k dispozici. Viz úplná aktualizace streamovaných tabulek

Databricks doporučuje úplnou aktualizaci pouze v případě, že vstupní zdroje dat obsahují data potřebná k opětovnému vytvoření požadovaného stavu tabulky nebo zobrazení. Představte si následující scénáře, kdy už nejsou k dispozici vstupní zdrojová data a výsledek spuštění úplné aktualizace:

Zdroj dat Důvod chybějících vstupních dat Výsledek úplné aktualizace
Kafka Prahová hodnota krátkého uchovávání Záznamy, které se už nenachází ve zdroji Kafka, se z cílové tabulky zahodí.
Soubory v úložišti objektů Zásady životního cyklu Datové soubory, které již nejsou ve zdrojovém adresáři, se z cílové tabulky zahodí.
Záznamy v tabulce Odstraněno kvůli dodržování předpisů Zpracovávají se jenom záznamy, které jsou ve zdrojové tabulce.

Chcete-li zabránit spuštění úplných aktualizací v tabulce nebo zobrazení, nastavte vlastnost tabulky pipelines.reset.allowed na false. Viz vlastnosti tabulky Pipeline. Můžete také použít tok přidání k připojení dat k existující streamované tabulce, aniž by bylo nutné provádět úplnou aktualizaci.

Zahájit aktualizaci pipeline pro vybrané tabulky

Volitelně můžete znovu zpracovat data pouze pro vybrané tabulky v datovém toku. Během vývoje například změníte jenom jednu tabulku a chcete zkrátit dobu testování nebo se nezdaří aktualizace kanálu a chcete aktualizovat pouze neúspěšné tabulky.

Editor kanálů Lakeflow nabízí možnosti pro opětovné zpracování zdrojového souboru, vybraných tabulek nebo jedné tabulky. Podrobnosti najdete v tématu Spuštění pipeline kódu.

Spuštění aktualizace datového proudu pro selhalé tabulky

Pokud aktualizace kanálu selže kvůli chybám v jedné nebo více tabulkách v grafu kanálu, můžete spustit aktualizaci pouze neúspěšných tabulek a všech podřízených závislostí.

Poznámka:

Vyloučené tabulky se neaktualizují, i když závisí na selhalé tabulce.

Pokud chcete aktualizovat selhané tabulky, klikněte na stránce sledování kanálu na Aktualizovat selhané tabulky.

Aktualizace pouze vybraných neúspěšných tabulek ze stránky monitorování kanálu:

  1. Klikněte na tlačítko Dolů vedle tlačítka Obnovit neúspěšné tabulky a poté klikněte na Vybrat tabulky pro obnovení. Zobrazí se dialogové okno Vybrat tabulky pro aktualizaci .

  2. Pokud chcete vybrat tabulky, které se mají aktualizovat, klikněte na každou tabulku. Vybrané tabulky jsou zvýrazněné a označené. Pokud chcete tabulku z aktualizace odebrat, klikněte znovu na tabulku.

  3. Klikněte na Aktualizovat výběr.

    Poznámka:

    Tlačítko Aktualizovat výběr zobrazuje počet vybraných tabulek v závorkách.

Chcete-li znovu zpracovat data již ingestovaná pro vybrané tabulky, klikněte na Blue Down Caret vedle tlačítka Aktualizovat výběr a klikněte na Úplná aktualizace výběru.

Zahájit aktualizaci datového potrubí pro vymazání kontrolních bodů selektivních toků streamování

Volitelně můžete znovu zpracovat data pro vybrané toky streamování ve vašem kanálu bez vymazání už přijatých dat.

Poznámka:

Toky, které nejsou vybrané, se spouštějí pomocí REFRESH aktualizace. Můžete také zadat full_refresh_selection nebo refresh_selection selektivně aktualizovat další tabulky.

Pokud chcete spustit aktualizaci pro aktualizaci vybraných kontrolních bodů streamování, použijte požadavek na aktualizace v rozhraní REST API deklarativních kanálů Sparku Lakeflow.

Parametr reset_checkpoint_selection přijímá seznam názvů toků. Název toku musíte použít, jak se zobrazí v grafu kanálu:

  • Pokud jste definovali tok s explicitním názvem (například pomocí parametru flow_name v create_auto_cdc_flow), použijte tento název.
  • Pokud jste nenastavili explicitní název toku, výchozí název toku je plně kvalifikovaný název tabulky ve catalog.schema.table formátu. Použití pouze názvu tabulky (například gold místo my_catalog.my_schema.gold) způsobí, že aktualizace datového toku selže, což má za následek chybu IllegalArgumentException.

Názvy toků najdete v uživatelském rozhraní kanálu nebo v protokolech událostí kanálu.

Následující příklad používá příkaz curl k vyvolání žádosti updates pro spuštění aktualizace pipeline:

curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": ["my_catalog.my_schema.my_streaming_table"]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates

Následující příklad resetuje kontrolní bod toku s vlastním názvem:

curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": ["my_custom_flow_name"]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates

Zkontrolujte chyby v datovém toku bez čekání na aktualizaci tabulek

Důležité

Funkce kanálu Dry run je ve veřejné ukázce.

Pokud chcete zkontrolovat, jestli je zdrojový kód kanálu platný bez spuštění úplné aktualizace, použijte suchý běh. Tzv. suchý běh vyřeší definice datových sad a toků definovaných v pipeline, ale neprovede materializaci ani publikování žádných datových sad. Chyby zjištěné během testovacího provozu, jako jsou nesprávné názvy tabulek nebo sloupců, jsou hlášeny v uživatelském rozhraní.

Chcete-li spustit testovací běh, klepněte na modrou šipku dolů na stránce podrobností kanálu vedle Start a klepněte na tlačítko Testovací spuštění.

Po dokončení testovacího spuštění se všechny chyby zobrazí v oznamovací oblasti v dolním panelu. Kliknutím na ikonu událostí se zobrazí jakékoli problémy nalezené v dolním panelu. Navíc protokol událostí zobrazuje pouze události související s testovacím režimem a v DAG se nezobrazují žádné metriky. Pokud jsou nalezeny chyby, podrobnosti jsou k dispozici v protokolu událostí.

Zobrazí se výsledky pouze pro poslední suchý běh. Pokud bylo suché spuštění poslední spuštěnou aktualizací, můžete výsledky zobrazit jejich výběrem v historii aktualizací. Pokud se po testovacím spuštění spustí jiná aktualizace, výsledky už nebudou v uživatelském rozhraní dostupné.

Chování při spuštění aktualizace

Chování aktualizace pipeline je určeno tím, jak ji spustíte:

  • Aktualizace aktivované z uživatelského rozhraní monitorování kanálu pomocí funkce Spustit teď používají chování zaměřené na rychlé spuštění a ladění.
  • Aktualizace spouštěné úlohami, rozhraním API kanálů nebo kontinuálními kanály využívají chování automatického opakování a restartu.

U spuštěných pipelinů můžete přepsat výchozí chování konkrétního běhu tak, že v rozevíracím seznamu v Editoru pipelinů Lakeflow nebo na stránce monitorování pipelinu zvolíte Spustit nyní s jinými nastaveními.

Chování zaměřené na rychlé spuštění a ladění

Používá se v uživatelském rozhraní pro Spustit nyní a neplánované aktualizace. Tato spuštění optimalizují rychlé iterace:

  • Znovu použije klastr, aby se zabránilo režii restartů. Ve výchozím nastavení běží clustery po dobu dvou hodin. Můžete to změnit nastavením pipelines.clusterShutdown.delay v části Konfigurace klasických výpočetních prostředků pro kanály.
  • Zakáže opakované pokusy potrubí, abyste mohli okamžitě zjišťovat a opravovat chyby.

Chování automatického opakování a restartování

Používá se pro úlohy, aktualizace aktivované rozhraním API a průběžné kanály. Tato spuštění upřednostňují spolehlivost a nákladovou efektivitu:

  • Restartuje cluster pro konkrétní obnovitelné chyby, včetně úniků paměti a zastaralých přihlašovacích údajů.
  • Opakuje provádění v případě konkrétních chyb, jako je například selhání spuštění clusteru.
  • Po dokončení spuštění se cluster okamžitě vypne.

Poznámka:

Chování spuštění řídí pouze provedení clusteru a pipeliny. Umístění úložiště a cílová schémata v katalogu pro publikované tabulky musí být nakonfigurována jako součást nastavení datového kanálu a nejsou ovlivněna průběhem spuštění.