Delen via


Taken toevoegen aan taken in Databricks Asset Bundles

Dit artikel bevat voorbeelden van verschillende soorten taken die u kunt toevoegen aan Azure Databricks-taken in Databricks Asset Bundles. Bekijk wat zijn Databricks Asset Bundles?.

De meeste taaktaaktypen hebben taakspecifieke parameters onder de ondersteunde instellingen, maar u kunt ook taakparameters definiëren die worden doorgegeven aan taken. Dynamische waardeverwijzingen worden ondersteund voor taakparameters, waardoor waarden kunnen worden doorgegeven die specifiek zijn voor de taak die tussen taken wordt uitgevoerd. Zie Wat is een verwijzing naar dynamische waarden?

Notitie

U kunt taaktaakinstellingen overschrijven. Zie Taaktakeninstellingen overschrijven in Databricks Asset Bundles.

Tip

Als u snel resourceconfiguratie wilt genereren voor een bestaande taak met behulp van de Databricks CLI, kunt u de bundle generate job opdracht gebruiken. Zie bundelopdrachten.

Notebook-taak

U gebruikt deze taak om een notebook uit te voeren.

In het volgende voorbeeld wordt een notebooktaak aan een taak toegevoegd en wordt een taakparameter met de naam my_job_run_idingesteld. Het pad voor de te implementeren notebook is relatief ten opzichte van het configuratiebestand waarin deze taak wordt gedeclareerd. De taak haalt het notebook op van de geïmplementeerde locatie in de Azure Databricks-werkruimte.

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}}"

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > notebook_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling. Zie Notebook-taak voor taken.

Taak als/anders-voorwaarde

Met de condition_task kunt u een taak toevoegen met if/else-voorwaardelijke logica aan uw taak. De taak evalueert een voorwaarde die kan worden gebruikt om de uitvoering van andere taken te beheren. De voorwaardetaak vereist geen cluster om uit te voeren en biedt geen ondersteuning voor nieuwe pogingen of meldingen. Zie Vertakkingslogica toevoegen aan een taak met de if/else-taakvoor meer informatie over de if/else-taak.

Het volgende voorbeeld bevat een voorwaardetaak en een notebooktaak, waarbij de notebooktaak alleen wordt uitgevoerd als het aantal taakreparaties kleiner is dan 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

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > condition_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling.

Voor elke taak

Met de for_each_task kunt u een taak met een 'for each' lus aan uw taak toevoegen. De taak voert een geneste taak uit voor elke gegeven invoer. Zie Een geparameteriseerde Azure Databricks-taaktaak uitvoeren in een lusvoor meer informatie over de for_each_task.

In het volgende voorbeeld wordt een for_each_task aan een taak toegevoegd, waarbij deze de waarden van een andere taak doorloopt en verwerkt.

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

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > for_each_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling.

Python-scripttaak

U gebruikt deze taak om een Python-bestand uit te voeren.

In het volgende voorbeeld wordt een Python-scripttaak aan een taak toegevoegd. Het pad voor het te implementeren Python-bestand is relatief ten opzichte van het configuratiebestand waarin deze taak wordt gedeclareerd. De taak haalt het Python-bestand op van de geïmplementeerde locatie in de Azure Databricks-werkruimte.

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

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > spark_python_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling. Zie ook Python-scripttaak voor taken.

Python-wieltaak

U gebruikt deze taak om een Python-wielbestand uit te voeren.

In het volgende voorbeeld wordt een Python-wieltaak aan een taak toegevoegd. Het pad voor het Python-wielbestand dat moet worden geïmplementeerd, is relatief ten opzichte van het configuratiebestand waarin deze taak wordt gedeclareerd. Zie bibliotheekafhankelijkheden van 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

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > python_wheel_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling. Zie ook Een Python-wielbestand ontwikkelen met behulp van Databricks Asset Bundles en Python Wheel-taak voor taken.

JAR-taak

U gebruikt deze taak om een JAR uit te voeren. U kunt verwijzen naar lokale JAR-bibliotheken of bibliotheken in een werkruimte, een Unity Catalog-volume of een externe cloudopslaglocatie. Zie bibliotheekafhankelijkheden van Databricks Asset Bundles.

In het volgende voorbeeld wordt een JAR-taak aan een taak toegevoegd. Het pad voor de JAR is naar de opgegeven volumelocatie.

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

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > spark_jar_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling. Zie de JAR-taak voor taken.

SQL-bestandstaak

U gebruikt deze taak om een SQL-bestand uit te voeren dat zich in een werkruimte of een externe Git-opslagplaats bevindt.

In het volgende voorbeeld wordt een SQL-bestandstaak aan een taak toegevoegd. Deze SQL-bestandstaak maakt gebruik van het opgegeven SQL-warehouse om het opgegeven SQL-bestand uit te voeren.

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

Als u de id van een SQL Warehouse wilt ophalen, opent u de instellingenpagina van het SQL-magazijn en kopieert u de id tussen haakjes achter de naam van het magazijn in het veld Naam op het tabblad Overzicht .

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > sql_task > file u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling. Zie DE SQL-taak voor taken.

Pijplijntaak voor Delta Live Tables

U gebruikt deze taak om een Delta Live Tables-pijplijn uit te voeren. Zie Wat is Delta Live Tables?

In het volgende voorbeeld wordt een pijplijntaak voor Delta Live Tables toegevoegd aan een taak. Met deze Delta Live Tables-pijplijntaak wordt de opgegeven pijplijn uitgevoerd.

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

U kunt de id van een pijplijn ophalen door de pijplijn in de werkruimte te openen en de waarde van de pijplijn-id te kopiëren op het tabblad Pijplijndetails van de pagina Instellingen van de pijplijn.

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > pipeline_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling. Zie pijplijntaak voor Delta Live Tables voor taken.

dbt-taak

U gebruikt deze taak om een of meer dbt-opdrachten uit te voeren. Zie Verbinding maken met dbt Cloud.

In het volgende voorbeeld wordt een dbt-taak aan een taak toegevoegd. Deze dbt-taak maakt gebruik van het opgegeven SQL-warehouse om de opgegeven dbt-opdrachten uit te voeren.

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"

Als u de id van een SQL Warehouse wilt ophalen, opent u de instellingenpagina van het SQL-magazijn en kopieert u de id tussen haakjes achter de naam van het magazijn in het veld Naam op het tabblad Overzicht .

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > dbt_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling. Zie dbt-taak voor taken.

Databricks Asset Bundles bevat ook een dbt-sql projectsjabloon die een taak definieert met een dbt-taak, evenals dbt-profielen voor geïmplementeerde dbt-taken. Zie Een standaardbundelsjabloon gebruiken voor informatie over Databricks Asset Bundles-sjablonen.

Taaktaak uitvoeren

U gebruikt deze taak om een andere taak uit te voeren.

Het volgende voorbeeld bevat een taaktaak uitvoeren in de tweede taak waarmee de eerste taak wordt uitgevoerd.

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}

In dit voorbeeld wordt een vervanging gebruikt om de id van de taak op te halen die moet worden uitgevoerd. Als u de id van een taak wilt ophalen uit de gebruikersinterface, opent u de taak in de werkruimte en kopieert u de id van de taak-id op het tabblad Taakgegevens van de pagina Instellingen van de taken.

Voor aanvullende toewijzingen die u voor deze taak kunt instellen, raadpleegt tasks > run_job_task u de nettolading van de aanvraag van de taak maken zoals gedefinieerd in POST /api/2.1/jobs/create in de REST API-verwijzing, uitgedrukt in YAML-indeling.