Vývoj úlohy v Azure Databricks pomocí sad prostředků Databricks
Sady prostředků Databricks, označované také jako sady prostředků, obsahují artefakty, které chcete nasadit, a nastavení prostředků Azure Databricks, jako jsou úlohy, které chcete spustit, a umožňují programově ověřovat, nasazovat a spouštět. Podívejte se, co jsou sady prostředků Databricks?
Tento článek popisuje, jak vytvořit sadu pro programovou správu úlohy. Viz Plán a orchestrace pracovních postupů. Sada se vytvoří pomocí výchozí šablony sady prostředků Databricks pro Python, která se skládá z poznámkového bloku spárovaného s definicí úlohy, která ji spustí. Pak ověříte, nasadíte a spustíte nasazenou úlohu v pracovním prostoru Azure Databricks.
Tip
Pokud máte existující úlohy vytvořené pomocí uživatelského rozhraní Azure Databricks Jobs nebo rozhraní API, které chcete přesunout do sad, musíte je definovat v konfiguračních souborech sady. Databricks doporučuje nejprve vytvořit sadu pomocí následujícího postupu a ověřit, jestli sada funguje. Do sady pak můžete přidat další definice úloh, poznámkové bloky a další zdroje. Viz Přidání existující definice úlohy do sady.
Požadavky
- Databricks CLI verze 0.218.0 nebo vyšší. Pokud chcete zkontrolovat nainstalovanou verzi rozhraní příkazového řádku Databricks, spusťte příkaz
databricks -v
. Pokud chcete nainstalovat rozhraní příkazového řádku Databricks, přečtěte si téma Instalace nebo aktualizace rozhraní příkazového řádku Databricks. - Vzdálený pracovní prostor Databricks musí mít povolené soubory pracovního prostoru. Podívejte se, co jsou soubory pracovního prostoru?
Vytvoření sady pomocí šablony projektu
Nejprve vytvořte sadu pomocí výchozí šablony Pythonu Sady prostředků Databricks. Další informace o šablonách balíčků najdete v tématu Šablony projektů Sady prostředků Databricks.
Pokud chcete vytvořit sadu úplně od začátku, přečtěte si téma Ruční vytvoření sady.
Krok 1: Nastavení ověřování
V tomto kroku nastavíte ověřování mezi Rozhraním příkazového řádku Databricks na vývojovém počítači a pracovním prostorem Azure Databricks. Tento článek předpokládá, že chcete použít ověřování U2M (user-to-machine) OAuth a odpovídající konfigurační profil Azure Databricks s názvem DEFAULT
ověřování.
Poznámka:
Ověřování U2M je vhodné pro vyzkoušení těchto kroků v reálném čase. Pro plně automatizované pracovní postupy doporučuje Databricks místo toho použít ověřování M2M (machine-to-machine). Viz pokyny k nastavení ověřování M2M v části Ověřování.
Pomocí rozhraní příkazového řádku Databricks zahajte správu tokenů OAuth místně spuštěním následujícího příkazu pro každý cílový pracovní prostor.
V následujícím příkazu nahraďte
<workspace-url>
adresou URL služby Azure Databricks pro jednotlivé pracovní prostory, napříkladhttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Rozhraní příkazového řádku Databricks vás vyzve k uložení informací, které jste zadali jako konfigurační profil Azure Databricks. Stisknutím klávesy
Enter
potvrďte navrhovaný název profilu nebo zadejte název nového nebo existujícího profilu. Všechny existující profily se stejným názvem se přepíšou informacemi, které jste zadali. Profily můžete použít k rychlému přepnutí kontextu ověřování napříč několika pracovními prostory.Pokud chcete získat seznam všech existujících profilů, v samostatném terminálu nebo příkazovém řádku spusťte příkaz
databricks auth profiles
pomocí rozhraní příkazového řádku Databricks . Pokud chcete zobrazit existující nastavení konkrétního profilu, spusťte příkazdatabricks auth env --profile <profile-name>
.Ve webovém prohlížeči dokončete pokyny na obrazovce, abyste se přihlásili k pracovnímu prostoru Azure Databricks.
Pokud chcete zobrazit aktuální hodnotu tokenu OAuth profilu a nadcházející časové razítko vypršení platnosti tokenu, spusťte jeden z následujících příkazů:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Pokud máte více profilů se stejnou
--host
hodnotou, možná budete muset zadat--host
společně možnosti a-p
pomoct rozhraní příkazového řádku Databricks najít správné odpovídající informace o tokenu OAuth.
Krok 2: Inicializace sady
Inicializace sady pomocí výchozí šablony projektu sady Pythonu
Pomocí terminálu nebo příkazového řádku přepněte do adresáře na místním vývojovém počítači, který bude obsahovat vygenerovanou sadu šablony.
Ke spuštění
bundle init
příkazu použijte rozhraní příkazového řádku Databricks:databricks bundle init
Pro
Template to use
, ponechte výchozí hodnotudefault-python
stisknutím klávesyEnter
.Pro
Unique name for this project
, ponechte výchozí hodnotumy_project
, nebo zadejte jinou hodnotu a stiskněteEnter
. Určuje název kořenového adresáře pro tuto sadu. Tento kořenový adresář se vytvoří v aktuálním pracovním adresáři.Pro
Include a stub (sample) notebook
, vyberteyes
a stiskněteEnter
.Pro
Include a stub (sample) DLT pipeline
, vyberteno
a stiskněteEnter
. To dává rozhraní příkazového řádku Databricks pokyn, aby ve vaší sadě nedefinoval ukázkový kanál dynamických tabulek Delta.Pro
Include a stub (sample) Python package
, vyberteno
a stiskněteEnter
. To dává rozhraní příkazového řádku Databricks pokyn, aby do sady nepřidávejte ukázkové soubory balíčků kol Pythonu ani související pokyny k sestavení.
Krok 3: Prozkoumání sady
Pokud chcete zobrazit soubory, které šablona vygenerovala, přepněte do kořenového adresáře nově vytvořené sady. Mezi soubory, které mají zvláštní zájem, patří:
-
databricks.yml
: Tento soubor určuje programový název sady, obsahuje odkaz na definici úlohy a určuje nastavení cílového pracovního prostoru. -
resources/<project-name>_job.yml
: Tento soubor určuje nastavení úlohy, včetně výchozího úkolu poznámkového bloku. -
src/notebook.ipynb
: Tento soubor je ukázkový poznámkový blok, který při spuštění jednoduše inicializuje sadu RDD obsahující čísla 1 až 10.
Pro přizpůsobení úloh mapování v deklaraci úlohy odpovídají datové části požadavku vyjádřené ve formátu YAML operace vytvoření úlohy popsané v post /api/2.1/jobs/create v odkazu na rozhraní REST API.
Tip
Nastavení nových clusterů úloh v balíčcích můžete definovat, kombinovat a přepsat pomocí technik popsaných v nastavení clusteru v sadě prostředků Databricks.
Krok 4: Ověření konfiguračního souboru sady projektů
V tomto kroku zkontrolujete, jestli je konfigurace sady platná.
Z kořenového adresáře spusťte
bundle validate
příkaz pomocí rozhraní příkazového řádku Databricks následujícím způsobem:databricks bundle validate
Pokud se vrátí souhrn konfigurace sady, ověření proběhlo úspěšně. Pokud se vrátí nějaké chyby, opravte chyby a opakujte tento krok.
Pokud po tomto kroku provedete nějaké změny sady, měli byste tento krok zopakovat a zkontrolovat, jestli je konfigurace sady stále platná.
Krok 5: Nasazení místního projektu do vzdáleného pracovního prostoru
V tomto kroku nasadíte místní poznámkový blok do vzdáleného pracovního prostoru Azure Databricks a v pracovním prostoru vytvoříte úlohu Azure Databricks.
V kořenovém adresáři sady spusťte příkaz pomocí rozhraní příkazového řádku
bundle deploy
Databricks následujícím způsobem:databricks bundle deploy -t dev
Zkontrolujte, jestli byl místní poznámkový blok nasazený: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní prostor.
Klikněte do složky src pro soubory Users >
<your-username>
> .bundle><project-name>
> dev.>> Poznámkový blok by měl být v této složce.Zkontrolujte, jestli byla úloha vytvořená: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní postupy.
Na kartě Úlohy klikněte na [dev
<your-username>
]<project-name>_job
.Klikněte na kartu Úkoly . Měl by existovat jeden úkol: notebook_task.
Pokud po tomto kroku provedete nějaké změny v sadě, měli byste zopakovat kroky 4 až 5, abyste zkontrolovali, jestli je konfigurace sady stále platná, a pak projekt znovu nasaďte.
Krok 6: Spuštění nasazeného projektu
V tomto kroku aktivujete spuštění úlohy Azure Databricks ve vašem pracovním prostoru z příkazového řádku.
V kořenovém adresáři spusťte příkaz pomocí rozhraní příkazového řádku
bundle run
Databricks následujícím způsobem a nahraďte<project-name>
ho názvem projektu z kroku 2:databricks bundle run -t dev <project-name>_job
Zkopírujte hodnotu, která se zobrazí v terminálu, a vložte ji do webového
Run URL
prohlížeče, aby se otevřel pracovní prostor Azure Databricks. Zobrazení a spuštění úlohy vytvořené pomocí sady prostředků DatabricksPo úspěšném dokončení úlohy a zobrazení zeleného záhlaví pracovního prostoru Azure Databricks zobrazte výsledky kliknutím na úkol úlohy.
Pokud po tomto kroku provedete nějaké změny sady, měli byste zopakovat kroky 4 až 6, abyste zkontrolovali, jestli je konfigurace sady stále platná, znovu nasaďte projekt a spusťte znovu nasazený projekt.
Krok 7: Vyčištění
V tomto kroku odstraníte nasazený poznámkový blok a úlohu z pracovního prostoru.
Z kořenového adresáře spusťte
bundle destroy
příkaz pomocí rozhraní příkazového řádku Databricks následujícím způsobem:databricks bundle destroy -t dev
Potvrďte žádost o odstranění úlohy: Po zobrazení výzvy k trvalému zničení prostředků zadejte
y
a stiskněteEnter
.Potvrďte žádost o odstranění poznámkového bloku: Po zobrazení výzvy k trvalému zničení dříve nasazené složky a všech jejích souborů zadejte
y
a stiskněteEnter
.Pokud chcete také odstranit sadu z vývojového počítače, můžete teď odstranit místní adresář z kroku 2.
Přidání existující definice úlohy do sady
Existující úlohu můžete použít jako základ k definování úlohy v konfiguračním souboru sady. Pokud chcete získat existující definici úlohy, můžete ji ručně načíst pomocí uživatelského rozhraní nebo ji můžete vygenerovat programově pomocí rozhraní příkazového řádku Databricks.
Informace o definici úlohy v sadách najdete v úloze.
Získání existující definice úlohy pomocí uživatelského rozhraní
Pokud chcete získat reprezentaci YAML existující definice úlohy z uživatelského rozhraní pracovního prostoru Azure Databricks:
Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní postupy.
Na kartě Úlohy klikněte na odkaz Název vaší úlohy.
Vedle tlačítka Spustit nyní klikněte na kebab a potom klikněte na přepnout na kód (YAML).
Přidejte YAML, který jste zkopírovali do souboru sady,
databricks.yml
nebo vytvořte konfigurační soubor pro úlohu vresources
adresáři projektu sady a odkazujte na něj zedatabricks.yml
souboru. Viz (/dev-tools/bundles/settings.md#resources).Stáhněte a přidejte všechny soubory a poznámkové bloky Pythonu, na které se odkazuje v existující úloze, do zdroje projektu sady. Artefakty sady jsou obvykle v
src
adresáři v sadě.Tip
Existující poznámkový blok z pracovního prostoru Azure Databricks můžete exportovat do
.ipynb
formátu kliknutím > IPython pro export > souborů z uživatelského rozhraní poznámkového bloku Azure Databricks.Po přidání poznámkových bloků, souborů Pythonu a dalších artefaktů do sady se ujistěte, že je definice úlohy správně odkazuje. Například pro poznámkový blok s názvem
hello.ipynb
, který je vsrc
adresáři sady:resources: jobs: hello-job: name: hello-job tasks: - task_key: hello-task notebook_task: notebook_path: ../src/hello.ipynb
Generování existující definice úlohy pomocí rozhraní příkazového řádku Databricks
Programové generování konfigurace sady pro existující úlohu:
Načtěte ID existující úlohy z bočního panelu Podrobnosti úlohy pro úlohu v uživatelském rozhraní úloh nebo použijte příkaz Rozhraní příkazového řádku
databricks jobs list
Databricks.bundle generate job
Spusťte příkaz Rozhraní příkazového řádku Databricks a nastavte ID úlohy:databricks bundle generate job --existing-job-id 6565621249
Tento příkaz vytvoří konfigurační soubor sady pro úlohu ve složce sady
resources
a stáhne všechny odkazované artefakty dosrc
složky.Tip
Pokud nejprve použijete
bundle deployment bind
vazbu prostředku v sadě k prostředku v pracovním prostoru, prostředek v pracovním prostoru se aktualizuje na základě konfigurace definované v sadě, ke které je vázán po dalšíbundle deploy
. Informace najdetebundle deployment bind
v tématu Vytvoření vazby prostředků sady prostředků.
Konfigurace úlohy, která používá bezserverové výpočetní prostředky
Následující příklady ukazují konfigurace sady prostředků pro vytvoření úlohy, která používá bezserverové výpočetní prostředky.
Pokud chcete použít bezserverové výpočetní prostředky ke spuštění úlohy, která zahrnuje úlohy poznámkového bloku, vynecháte job_clusters
konfiguraci z konfiguračního souboru sady.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: baby-names
resources:
jobs:
retrieve-filter-baby-names-job-serverless:
name: retrieve-filter-baby-names-job-serverless
tasks:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./retrieve-baby-names.py
- task_key: filter-baby-names-task
depends_on:
- task_key: retrieve-baby-names-task
notebook_task:
notebook_path: ./filter-baby-names.py
targets:
development:
workspace:
host: <workspace-url>
Pokud chcete ke spuštění úlohy, která zahrnuje úlohy Pythonu, použít bezserverové výpočetní prostředky, zahrňte environments
konfiguraci.
# yaml-language-server: $schema=bundle_config_schema.json
bundle:
name: serverless-python-tasks
resources:
jobs:
serverless-python-job:
name: serverless-job-with-python-tasks
tasks:
- task_key: wheel-task-1
python_wheel_task:
entry_point: main
package_name: wheel_package
environment_key: Default
environments:
- environment_key: Default
spec:
client: "1"
dependencies:
- workflows_authoring_toolkit==0.0.1
targets:
development:
workspace:
host: <workspace-url>
Viz Spuštění úlohy Azure Databricks s bezserverovými výpočetními prostředky pro pracovní postupy.