Sdílet prostřednictvím


Přidání úkolů do úloh v balíčcích Databricks Asset

Tento článek obsahuje příklady různých typů úloh, které můžete přidat do úloh Azure Databricks v sadách prostředků Databricks. Viz Co jsou sady prostředků Databricks?

Většina typů úloh má ve svých podporovaných nastaveních parametry specifické pro úkoly, ale můžete také definovat parametry úloh, které se předávají úkolům. Dynamické odkazy na hodnoty jsou podporovány pro parametry úlohy, které umožňují předávání hodnot specifických pro spuštění úlohy mezi úkoly. Podívejte se, co znamená odkaz na dynamickou hodnotu?

Poznámka:

Nastavení pracovních úkolů můžete přepsat. Viz Přepsání nastavení úloh v sadě prostředků Databricks.

Tip

Pokud chcete rychle vygenerovat konfiguraci prostředků pro existující úlohu pomocí Databricks CLI, můžete použít tento příkaz. Viz příkazy balíčku.

Úkol poznámkového bloku

Tuto úlohu použijete ke spuštění poznámkového bloku.

Následující příklad přidá úkol poznámkového bloku do úlohy a nastaví parametr úlohy s názvem my_job_run_id. Cesta pro nasazení notebooku je relativní vzhledem ke konfiguračnímu souboru, kde je tento úkol deklarován. Úloha získá poznámkový blok z jeho nasazeného umístění v pracovním prostoru Azure Databricks.

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-task
          notebook_task:
            notebook_path: ./my-notebook.ipynb
      parameters:
        - name: my_job_run_id
          default: '{{job.run_id}}'

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > notebook_task v datové části požadavku operace vytvoření, jak je definováno v POST /api/2.1/jobs/create v referenci REST API, vyjádřené ve formátu YAML. Viz úkol poznámkového bloku pro úlohy.

Úkol s podmínkou if/else

condition_task umožňuje do úlohy přidat úlohu s podmíněnou logikou if/else. Úkol vyhodnotí podmínku, kterou lze použít k řízení provádění jiných úkolů. Úloha podmínky nevyžaduje cluster ke spuštění a nepodporuje opakované pokusy ani oznámení. Další informace o úkolu if/else najdete v tématu Přidání logiky větvení do úlohy pomocíúkolu If/else .

Následující příklad obsahuje podmínkový úkol a úkol notebooku, kde se úkol spustí pouze pokud je počet oprav úloh menší než 5.

resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: condition_task
          condition_task:
            op: LESS_THAN
            left: '{{job.repair_count}}'
            right: '5'
        - task_key: notebook_task
          depends_on:
            - task_key: condition_task
              outcome: 'true'
          notebook_task:
            notebook_path: ../src/notebook.ipynb

Další mapování, která můžete nastavit pro tuto úlohu, najdete v datové části požadavku operace vytvoření úlohy, jak je definováno v POST /api/2.1/jobs/create v referenční příručce k REST API, vyjádřeno ve formátu YAML.

Pro každý úkol

for_each_task vám umožňuje přidat úkol s cyklem 'for each' do vaší úlohy. Úloha spustí vnořenou úlohu pro každý zadaný vstup. Další informace o for_each_tasknaleznete v tématu Použití úlohy For each ke spuštění jiné úlohy ve smyčce.

Následující příklad přidává for_each_task k úkolu, kde se iteruje přes hodnoty jiného úkolu a zpracovává je.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: generate_countries_list
          notebook_task:
            notebook_path: ../src/generate_countries_list.ipnyb
        - task_key: process_countries
          depends_on:
            - task_key: generate_countries_list
          for_each_task:
            inputs: '{{tasks.generate_countries_list.values.countries}}'
            task:
              task_key: process_countries_iteration
              notebook_task:
                notebook_path: ../src/process_countries_notebook.ipnyb

Další mapování, která můžete pro tuto úlohu nastavit, najdete, když se podíváte na tasks > for_each_task v datové části žádosti operace vytvoření, jak je definováno v POST /api/2.1/jobs/create v referenci REST API, vyjádřené ve formátu YAML.

Úloha skriptu Pythonu

Tuto úlohu použijete ke spuštění souboru Pythonu.

Následující příklad přidá úlohu skriptu Pythonu do úlohy. Cesta k souboru Pythonu, který se má nasadit, je relativní vzhledem ke konfiguračnímu souboru, ve kterém je tato úloha deklarována. Úloha získá soubor ve formátu Python z nasazeného umístění v pracovním prostoru Azure Databricks.

resources:
  jobs:
    my-python-script-job:
      name: my-python-script-job

      tasks:
        - task_key: my-python-script-task
          spark_python_task:
            python_file: ./my-script.py

Další mapování, které můžete pro tuto úlohu nastavit, najdete v tasks > spark_python_task v datové části požadavku operace vytvoření úlohy, definované jako POST /api/2.1/jobs/create v referenci REST API, ve formátu YAML. Vizte také úloha skriptu Pythonu pro pracovní postupy.

Úloha kolečka Pythonu

Tuto úlohu použijete ke spuštění Python wheel souboru.

Následující příklad přidá úlohu kolečka Pythonu do úlohy. Cesta k souboru kola Pythonu, který se má nasadit, je relativní vzhledem ke konfiguračnímu souboru, ve kterém je tato úloha deklarována. Podívejte se na závislosti knihovny Databricks Asset Bundles.

resources:
  jobs:
    my-python-wheel-job:
      name: my-python-wheel-job
      tasks:
        - task_key: my-python-wheel-task
          python_wheel_task:
            entry_point: run
            package_name: my_package
          libraries:
            - whl: ./my_package/dist/my_package-*.whl

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > python_wheel_task v datové části požadavku operace vytvoření, jak je definováno v POST /api/2.1/jobs/create v referenci REST API, vyjádřené ve formátu YAML. Viz také Vytvoření souboru Python wheel s využitím balíčků Databricks Asset Bundles a úkol Python Wheel pro úlohy.

JAR: úloha

Tuto úlohu použijete ke spuštění souboru JAR. Můžete odkazovat na místní knihovny JAR nebo knihovny v pracovním prostoru, na svazek katalogu Unity nebo v externím cloudovém úložišti. Viz závislosti knihovny Databricks Asset Bundles.

Následující příklad přidá úlohu JAR k úloze. Cesta pro soubor JAR vede k určenému umístění svazku.

resources:
  jobs:
    my-jar-job:
      name: my-jar-job
      tasks:
        - task_key: my-jar-task
          spark_jar_task:
            main_class_name: org.example.com.Main
          libraries:
            - jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > spark_jar_task v požadavku na operaci vytvoření podle definice POST /api/2.1/jobs/create v referenci REST API ve formátu YAML. Podívejte se na úkol JAR přiřazený pracovním úlohám.

Úloha souboru SQL

Tuto úlohu použijete ke spuštění souboru SQL umístěného v pracovním prostoru nebo vzdáleném úložišti Git.

Následující příklad přidá úlohu souboru SQL do úlohy. Tato úloha souboru SQL používá zadaný SQL Warehouse ke spuštění zadaného souboru SQL.

resources:
  jobs:
    my-sql-file-job:
      name: my-sql-file-job
      tasks:
        - task_key: my-sql-file-task
          sql_task:
            file:
              path: /Users/someone@example.com/hello-world.sql
              source: WORKSPACE
            warehouse_id: 1a111111a1111aa1

Pokud chcete získat ID SQL Warehouse, otevřete stránku nastavení SQL Warehouse a potom zkopírujte ID nalezené v závorkách za názvem skladu v poli Název na kartě Přehled .

Další mapování, která můžete pro tuto úlohu nastavit, najdete v tasks > sql_task > file, v těle požadavku operace vytvoření úlohy, jak je definováno v POST /api/2.1/jobs/create v dokumentaci REST API, vyjádřeném ve formátu YAML. Podívejte se na SQL úloha pro pracovní úkony.

Úloha kanálu DLT

Tuto úlohu použijete ke spuštění potrubí DLT. Podívejte se na Co je DLT.

Následující příklad přidá úlohu pipeline DLT do pracovního úkolu. Tato úloha datového toku DLT spustí zadaný datový tok.

resources:
  jobs:
    my-pipeline-job:
      name: my-pipeline-job
      tasks:
        - task_key: my-pipeline-task
          pipeline_task:
            pipeline_id: 11111111-1111-1111-1111-111111111111

ID kanálu můžete získat tak, že kanál otevřete v pracovním prostoru a zkopírujete hodnotu ID kanálu na kartě Podrobnosti kanálu na stránce nastavení kanálu.

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > pipeline_task v datové části požadavku operace 'create job', jak je definováno v POST /api/2.1/jobs/create v referenci REST API, která je vyjádřená ve formátu YAML. Viz úloha kanálu DLT pro úlohy.

dbt – úloha

Tuto úlohu použijete ke spuštění jednoho nebo více příkazů dbt. Viz Připojení ke službě dbt Cloud.

Následující příklad přidá úkol DBT do úlohy. Tato úloha dbt používá zadaný SQL Warehouse ke spuštění zadaných příkazů dbt.

resources:
  jobs:
    my-dbt-job:
      name: my-dbt-job
      tasks:
        - task_key: my-dbt-task
          dbt_task:
            commands:
              - 'dbt deps'
              - 'dbt seed'
              - 'dbt run'
            project_directory: /Users/someone@example.com/Testing
            warehouse_id: 1a111111a1111aa1
          libraries:
            - pypi:
                package: 'dbt-databricks>=1.0.0,<2.0.0'

Pokud chcete získat ID SQL Warehouse, otevřete stránku nastavení SQL Warehouse a potom zkopírujte ID nalezené v závorkách za názvem skladu v poli Název na kartě Přehled .

Další mapování, která můžete pro tuto úlohu nastavit, najdete tasks > dbt_task v datové části požadavku operace vytvoření, jak je definováno v POST /api/2.1/jobs/create v referenci REST API, vyjádřené ve formátu YAML. Podívejte se na úlohu dbt pro práce.

Sady prostředků Databricks také obsahují dbt-sql šablonu projektu, která definuje job s úkolem dbt, a profily dbt pro nasazené dbt úlohy. Informace o šablonách sad prostředků Databricks najdete v tématu Výchozí šablony sad prostředků.

Spustit úlohu

Tuto úlohu použijete ke spuštění jiné úlohy.

Následující příklad obsahuje úlohu ve druhé práci, která spouští první úlohu.

resources:
  jobs:
    my-first-job:
      name: my-first-job
      tasks:
        - task_key: my-first-job-task
          new_cluster:
            spark_version: '13.3.x-scala2.12'
            node_type_id: 'i3.xlarge'
            num_workers: 2
          notebook_task:
            notebook_path: ./src/test.py
    my_second_job:
      name: my-second-job
      tasks:
        - task_key: my-second-job-task
          run_job_task:
            job_id: ${resources.jobs.my-first-job.id}

Tento příklad používá substituci k načtení ID úlohy, která se má spustit. Pokud chcete získat ID úlohy z uživatelského rozhraní, otevřete úlohu v pracovním prostoru a zkopírujte ID z hodnoty ID úlohy na kartě Podrobnosti úlohy na stránce nastavení úloh.

Další mapování, která můžete nastavit pro tuto úlohu, najdete v payloadu požadavku operace vytvoření úlohy, jak je definováno v POST /api/2.1/jobs/create v referenční příručce REST API, vyjádřeno ve formátu YAML.