Sdílet prostřednictvím


Plánování a orchestrace pracovních postupů

Pracovní postupy Databricks mají nástroje, které umožňují plánovat a orchestrovat úlohy zpracování dat v Azure Databricks. Pracovní postupy Databricks slouží ke konfiguraci úloh Databricks.

Tento článek představuje koncepty a volby související se správou produkčních úloh pomocí úloh Databricks.

Co jsou úlohy Databricks?

Úloha je primární jednotkou pro plánování a orchestraci produkčních úloh v Azure Databricks. Úlohy se skládají z jednoho nebo více úkolů. Úkoly a úlohy společně umožňují konfigurovat a nasazovat následující položky:

  • Vlastní logika, včetně Sparku, SQL, OSS Pythonu, ML a libovolného kódu
  • Výpočetní prostředky s vlastními prostředími a knihovnami
  • Plány a triggery pro spouštění úloh
  • Podmíněná logika pro tok řízení mezi úlohami

Úlohy poskytují procedurální přístup k definování vztahů mezi úkoly. Kanály Delta Live Tables poskytují deklarativní přístup k definování relací mezi datovými sadami a transformacemi. Kanály Delta Live Tables můžete do úlohy zahrnout jako úlohu. Viz úloha kanálu Delta Live Tables pro úlohy.

Úlohy se můžou lišit od jedné úlohy, na které běží poznámkový blok Databricks, až po tisíce úloh spuštěných pomocí podmíněné logiky a závislostí.

Jak můžu konfigurovat a spouštět úlohy?

Úlohu můžete vytvořit a spustit pomocí uživatelského rozhraní úloh, rozhraní příkazového řádku Databricks nebo vyvoláním rozhraní API úloh. Pomocí uživatelského rozhraní nebo rozhraní API můžete opravit a znovu spustit neúspěšnou nebo zrušenou úlohu. Výsledky spuštění úlohy můžete monitorovat pomocí uživatelského rozhraní, rozhraní příkazového řádku, rozhraní API a oznámení (například e-mail, cíl webhooku nebo oznámení Slack).

Pokud dáváte přednost přístupu typu infrastruktura jako kód (IaC) ke konfiguraci a orchestraci úloh, použijte sady prostředků Databricks (DABs). Sady můžou obsahovat definice YAML úloh a úkolů, spravují se pomocí rozhraní příkazového řádku Databricks a můžou se sdílet a spouštět v různých cílových pracovních prostorech (jako je vývoj, příprava a produkční prostředí). Další informace o použití DAB ke konfiguraci a orchestraci úloh najdete v tématu Sady prostředků Databricks.

Další informace o používání rozhraní příkazového řádku Databricks najdete v tématu Co je rozhraní příkazového řádku Databricks? Další informace o používání rozhraní API pro úlohy najdete v rozhraní API úloh.

Jaká je minimální konfigurace potřebná pro úlohu?

Všechny úlohy v Azure Databricks vyžadují následující:

  • Zdrojový kód (například poznámkový blok Databricks), který obsahuje logiku, která se má spustit.
  • Výpočetní prostředek ke spuštění logiky. Výpočetním prostředkem může být výpočetní prostředky bez serveru, klasické výpočetní úlohy nebo výpočetní prostředky pro celý účel. Viz Konfigurace výpočetních prostředků pro úlohy.
  • Zadaný plán, kdy má být úloha spuštěna. Volitelně můžete vynechat nastavení plánu a aktivovat úlohu ručně.
  • Jedinečný název.

Poznámka:

Pokud vyvíjíte kód v poznámkových blocích Databricks, můžete tento poznámkový blok nakonfigurovat jako úlohu pomocí tlačítka Plán . Viz Vytvoření a správa naplánovaných úloh poznámkového bloku.

Co je úkol?

Úkol představuje jednotku logiky, která se má spustit jako krok v úloze. Úkoly můžou být složité a můžou zahrnovat následující:

  • Poznámkový blok
  • SOUBOR JAR
  • Dotazy SQL
  • Kanál DLT
  • Jiná práce
  • Úlohy toku řízení

Pořadí provádění úkolů můžete řídit zadáním závislostí mezi nimi. Můžete nakonfigurovat úlohy, které se mají spouštět v posloupnosti nebo paralelně.

Úlohy pracují s informacemi o stavu a metadaty úkolů, ale rozsah úkolů je izolovaný. Hodnoty úkolů můžete použít ke sdílení kontextu mezi plánovanými úkoly. Viz Použití hodnot úkolů k předávání informací mezi úkoly.

Jaké možnosti toku řízení jsou k dispozici pro úlohy?

Při konfiguraci úloh a úkolů v úlohách můžete přizpůsobit nastavení, která řídí, jak se celá úloha a jednotlivé úkoly spouštějí. Mezi tyto možnosti patří:

Typy aktivačních událostí

Při konfiguraci úlohy musíte zadat typ triggeru. Můžete si vybrat z následujících typů aktivačních událostí:

Můžete se také rozhodnout, že úlohu aktivujete ručně, ale tato možnost je vyhrazená hlavně pro konkrétní případy použití, například:

  • Pomocí externího nástroje pro orchestraci můžete aktivovat úlohy pomocí volání rozhraní REST API.
  • Máte úlohu, která se spouští zřídka a vyžaduje ruční zásah pro ověření nebo řešení problémů s kvalitou dat.
  • Spouštíte úlohu, která se musí spouštět jenom jednou nebo několikrát, například migraci.

Viz Typy triggerů pro úlohy Databricks.

Opakování

Opakování určuje, kolikrát má být konkrétní úkol znovu spuštěn, pokud úloha selže s chybovou zprávou. Chyby jsou často přechodné a vyřešené restartováním. Některé funkce v Azure Databricks, jako je vývoj schématu se strukturovaným streamováním, předpokládají, že spouštíte úlohy s opakovanými pokusy o resetování prostředí a umožníte pracovnímu postupu pokračovat.

Pokud zadáte opakování úkolu, úloha se restartuje až do zadaného počtu opakování, pokud dojde k chybě. Ne všechny konfigurace úloh podporují opakování úloh. Viz Nastavení zásad opakování.

Při spuštění v režimu průběžného triggeru se Databricks automaticky opakuje s exponenciálním zpochybněním. Podívejte se, jak se chyby zpracovávají pro průběžné úlohy?

Spustit, pokud podmíněné úlohy

Typ úlohy Spustit můžete použít k určení podmíněných podmínek pro pozdější úkoly na základě výsledku jiných úkolů. Úkoly přidáte do úlohy a zadáte nadřazené úkoly závislé na nadřazených úkolech. Na základě stavu těchto úkolů můžete nakonfigurovat jeden nebo více podřízených úkolů, které se mají spustit. Úlohy podporují následující závislosti:

  • Vše bylo úspěšné.
  • Alespoň jeden úspěšný
  • Žádné se nezdařilo.
  • Hotovo
  • Nejméně jeden selhal.
  • Vše se nezdařilo.

Viz Konfigurace závislostí úkolů

Podmíněné úkoly if/else

Typ úkolu If/else můžete použít k určení podmíněných podmínek na základě určité hodnoty. Viz Přidání logiky větvení do úlohy s úkolem If/else.

Úlohy podporují taskValues definici v logice a umožňují vrátit výsledky určitého výpočtu nebo stavu z úlohy do prostředí úloh. Můžete definovat podmínky If/else pro taskValuesparametry úlohy nebo dynamické hodnoty.

Azure Databricks podporuje pro podmíněné operace následující operandy:

  • ==
  • !=
  • >
  • >=
  • <
  • <=

Viz také:

Pro jednotlivé úkoly

For each Pomocí úlohy můžete spustit jiný úkol ve smyčce a předat jinou sadu parametrů každé iteraci úlohy.

For each Přidání úkolu do úlohy vyžaduje definování dvou úkolů: For each úkol a vnořený úkol. Vnořená úloha je úloha, která se má spustit pro každou iteraci For each úlohy a je jedním ze standardních typů úloh Databricks Jobs. Pro předávání parametrů do vnořené úlohy se podporuje více metod.

Viz Spuštění parametrizované úlohy Azure Databricks ve smyčce.

Prahová hodnota doby trvání

Můžete zadat prahovou hodnotu doby trvání pro odeslání upozornění nebo zastavení úkolu nebo úlohy, pokud je překročena zadaná doba trvání. Mezi příklady, kdy můžete chtít toto nastavení nakonfigurovat, patří:

  • Máte úkoly náchylné k zablokování v zablokovaném stavu.
  • Pokud dojde k překročení smlouvy SLA pro pracovní postup, musíte upozornit inženýra.
  • Abyste se vyhnuli neočekávaným nákladům, chcete neúspěšnou úlohu nakonfigurovanou s velkým clusterem.

Viz Konfigurace očekávaného času dokončení nebo časového limitu pro úlohu a konfigurace očekávaného času dokončení nebo časového limitu úkolu.

Souběžnost

Většina úloh je nakonfigurovaná s výchozí souběžností 1 souběžné úlohy. To znamená, že pokud se předchozí spuštění úlohy nedokončilo v době, kdy by se měla aktivovat nová úloha, další spuštění úlohy se přeskočí.

Některé případy použití existují pro zvýšení souběžnosti, ale většina úloh nevyžaduje změnu tohoto nastavení.

Další informace o konfiguraci souběžnosti najdete v tématu Databricks Jobs queueing and concurrency settings.

Jak můžu monitorovat úlohy?

Uživatelské rozhraní úloh umožňuje zobrazit spuštěné úlohy, včetně probíhajících spuštění. Viz Monitorování a pozorovatelnost pro úlohy Databricks.

Oznámení můžete dostávat, když se úloha nebo úkol spustí, dokončí nebo selže. Oznámení můžete posílat na jednu nebo více e-mailových adres nebo cílů systému. Viz Přidání e-mailových a systémových oznámení pro události úloh.

Systémové tabulky obsahují lakeflow schéma, ve kterém můžete zobrazit záznamy související s aktivitou úlohy ve vašem účtu. Viz Referenční informace k systémové tabulce úloh.

Systémové tabulky úloh můžete také spojit s fakturačními tabulkami, abyste mohli monitorovat náklady na úlohy napříč vaším účtem. Viz Monitorování nákladů na úlohy pomocí systémových tabulek.

Omezení

Jsou to následující omezení:

  • Pracovní prostor je omezen na 2000 souběžných spuštění úloh. Když si vyžádáte spuštění, které nejde zahájit okamžitě, vrátí se odpověď 429 Too Many Requests.
  • Počet úloh, které může pracovní prostor vytvořit za hodinu, je omezený na 1 0000 (zahrnuje "spuštění odeslat"). Toto omezení platí také pro úlohy vytvořené pomocí rozhraní REST API a pracovních postupů poznámkových bloků.
  • Pracovní prostor může obsahovat až 12000 uložených úloh.
  • Úloha může obsahovat až 100 úkolů.

Můžu spravovat pracovní postupy prostřednictvím kódu programu?

Databricks obsahuje nástroje a rozhraní API, které umožňují plánovat a orchestrovat pracovní postupy prostřednictvím kódu programu, včetně následujících:

Další informace o vývojářských nástrojích najdete v tématu Vývojářské nástroje.

Orchestrace pracovních postupů pomocí Apache AirFlow

Apache Airflow můžete použít ke správě a plánování datových pracovních postupů. Pomocí Airflow definujete pracovní postup v souboru Pythonu a Airflow spravuje plánování a spouštění pracovního postupu. Viz Orchestrace úloh Azure Databricks pomocí Apache Airflow.

Orchestrace pracovních postupů pomocí Azure Data Factory

Azure Data Factory (ADF) je cloudová služba pro integraci dat, která umožňuje vytvářet úložiště dat, přesun a zpracování služeb do automatizovaných datových kanálů. ADF můžete použít k orchestraci úlohy Azure Databricks jako součásti kanálu ADF.

ADF má také integrovanou podporu spouštění poznámkových bloků Databricks, skriptů Pythonu nebo kódu zabalených v jarech v kanálu ADF.

Informace o spuštění poznámkového bloku Databricks v kanálu ADF najdete v tématu Spuštění poznámkového bloku Databricks s aktivitou poznámkového bloku Databricks ve službě Azure Data Factory a následnou transformací dat spuštěním poznámkového bloku Databricks.

Informace o tom, jak spustit skript Pythonu v kanálu ADF, najdete v tématu Transformace dat spuštěním aktivity Pythonu v Azure Databricks.

Informace o spouštění kódu zabaleného v souboru JAR v kanálu ADF najdete v tématu Transformace dat spuštěním aktivity JAR v Azure Databricks.