Sdílet prostřednictvím


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

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í.

  1. 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říklad https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. 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 profilespomocí rozhraní příkazového řádku Databricks . Pokud chcete zobrazit existující nastavení konkrétního profilu, spusťte příkaz databricks auth env --profile <profile-name>.

  3. Ve webovém prohlížeči dokončete pokyny na obrazovce, abyste se přihlásili k pracovnímu prostoru Azure Databricks.

  4. 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

  1. 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.

  2. Ke spuštění bundle init příkazu použijte rozhraní příkazového řádku Databricks:

    databricks bundle init
    
  3. Pro Template to use, ponechte výchozí hodnotu default-python stisknutím klávesy Enter.

  4. Pro Unique name for this project, ponechte výchozí hodnotu my_project, nebo zadejte jinou hodnotu a stiskněte Enter. 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.

  5. Pro Include a stub (sample) notebook, vyberte yes a stiskněte Enter.

  6. Pro Include a stub (sample) DLT pipeline, vyberte no a stiskněte Enter. To dává rozhraní příkazového řádku Databricks pokyn, aby ve vaší sadě nedefinoval ukázkový kanál dynamických tabulek Delta.

  7. Pro Include a stub (sample) Python package, vyberte no a stiskněte Enter. 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á.

  1. 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
    
  2. 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.

  1. 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
    
  2. Zkontrolujte, jestli byl místní poznámkový blok nasazený: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní prostor.

  3. 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.

  4. Zkontrolujte, jestli byla úloha vytvořená: Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní postupy.

  5. Na kartě Úlohy klikněte na [dev<your-username>] <project-name>_job.

  6. 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.

  1. 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
    
  2. 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ů Databricks

  3. Po ú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.

  1. 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
    
  2. Potvrďte žádost o odstranění úlohy: Po zobrazení výzvy k trvalému zničení prostředků zadejte y a stiskněte Enter.

  3. 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ěte Enter.

  4. 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:

  1. Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní postupy.

  2. Na kartě Úlohy klikněte na odkaz Název vaší úlohy.

  3. Vedle tlačítka Spustit nyní klikněte na kebab a potom klikněte na přepnout na kód (YAML).

  4. Přidejte YAML, který jste zkopírovali do souboru sady, databricks.yml nebo vytvořte konfigurační soubor pro úlohu v resources adresáři projektu sady a odkazujte na něj ze databricks.yml souboru. Viz (/dev-tools/bundles/settings.md#resources).

  5. 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 na Poznámkový blok 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 v src 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:

  1. 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.

  2. 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 do src 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 najdete bundle deployment bindv 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.