Partager via


Ajouter des tâches à des travaux dans les packs de ressources Databricks

Cet article fournit des exemples de différents types de tâches que vous pouvez ajouter aux travaux Azure Databricks dans les packs de ressources Databricks. Consultez Que sont les packs de ressources Databricks ?.

La plupart des types de tâches de travail ont des paramètres spécifiques aux tâches parmi leurs paramètres pris en charge, mais vous pouvez également définir des paramètres de travail qui sont passés aux tâches. Les références de valeurs dynamiques sont prises en charge pour les paramètres de travail, qui permettent de transmettre des valeurs spécifiques à l’exécution du travail entre les tâches. Consulter Qu’est-ce qu’une référence de valeur dynamique ?

Remarque

Vous pouvez remplacer les paramètres de tâche de travail. Consultez Remplacer les paramètres des tâches de travail dans les packs de ressources Databricks.

Conseil

Pour générer rapidement la configuration des ressources pour un travail existant en utilisant l’interface CLI Databricks, vous pouvez utiliser la commande bundle generate job. Consultez Commandes de pack.

Tâche de notebook

Vous utilisez cette tâche pour exécuter un notebook.

L’exemple suivant ajoute une tâche de notebook à un travail et définit un paramètre de travail nommé my_job_run_id. Le chemin d’accès du notebook à déployer est relatif au fichier config dans lequel cette tâche est déclarée. La tâche obtient le notebook à partir de son emplacement déployé dans l’espace de travail Azure Databricks. (Les points de suspension indiquent le contenu omis, par souci de concision).

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

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > notebook_task dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML. Consultez Tâche de notebook pour les projets.

Tâche de script Python

Vous utilisez cette tâche pour exécuter un fichier Python.

L’exemple suivant ajoute une tâche de script Python à un travail. Le chemin d’accès du fichier Python à déployer est relatif au fichier config dans lequel cette tâche est déclarée. La tâche obtient le fichier Python à partir de son emplacement déployé dans l’espace de travail Azure Databricks. (Les points de suspension indiquent le contenu omis, par souci de concision).

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

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > spark_python_task dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML. Consultez également Tâche de script Python pour les projets.

Tâche de Wheel Python

Vous utilisez cette tâche pour exécuter un fichier wheel Python.

L’exemple suivant ajoute une tâche de Wheel Python à un travail. Le chemin d’accès du fichier Wheel Python à déployer est relatif au fichier config dans lequel cette tâche est déclarée. Consultez Dépendances de bibliothèque de packs de ressources Databricks. (Les points de suspension indiquent le contenu omis, par souci de concision).

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

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > python_wheel_task dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML. Consultez également Développer un fichier de roue Python à l’aide de regroupements de ressources Databricks et Tâche de roue Python pour les projets.

Tâche JAR

Vous utilisez cette tâche pour exécuter un fichier JAR. Vous pouvez référencer des bibliothèques JAR locales ou celles qui se trouvent dans un espace de travail, un volume Unity Catalog ou un emplacement de stockage cloud externe. Consultez Dépendances de bibliothèque de packs de ressources Databricks.

L’exemple suivant ajoute une tâche JAR à un travail. Le chemin d’accès au fichier JAR est à l’emplacement de volume spécifié. (Les points de suspension indiquent le contenu omis, par souci de concision).

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

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > spark_jar_task dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML. Consultez Tâche JAR pour les projets.

Tâche de fichier SQL

Vous utilisez cette tâche pour exécuter un fichier SQL qui se trouve dans un espace de travail ou un dépôt Git distant.

L’exemple suivant ajoute une tâche de fichier SQL à un travail. Cette tâche de fichier SQL utilise l’entrepôt SQL spécifié pour exécuter le fichier SQL spécifié. (Les points de suspension indiquent le contenu omis, par souci de concision).

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

Pour obtenir un ID d’entrepôt SQL, ouvrez la page des paramètres de l’entrepôt SQL,’puis copiez l’ID trouvé entre des parenthèses après le nom de l’entrepôt dans le champ Nom sous l’onglet Vue d’ensemble.

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > sql_task > file dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML. Consultez Tâche SQL pour les projets.

Tâche de pipelines Delta Live Tables

Vous utilisez cette tâche pour exécuter un pipeline Delta Live Tables. Consultez l’article Qu’est-ce que Delta Live Tables ?.

L’exemple suivant ajoute une tâche de pipeline Delta Live Tables à un travail. Cette tâche de pipeline Delta Live Tables exécute le pipeline spécifié. (Les points de suspension indiquent le contenu omis, par souci de concision).

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

Vous pouvez obtenir l’ID d’un pipeline en ouvrant le pipeline dans l’espace de travail et en copiant la valeur de ID de pipeline sous l’onglet Détails du pipeline de la page des paramètres du pipeline.

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > pipeline_task dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML. Consultez Tâche du pipeline Delta Live Tables pour les projets.

Tâche dbt

Vous utilisez cette tâche pour exécuter une ou plusieurs commandes dbt. Consultez Se connecter à dbt Cloud.

L’exemple suivant ajoute une tâche dbt à un travail. Cette tâche dbt utilise l’entrepôt SQL spécifié pour exécuter les commandes dbt spécifiées.

# ...
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"
          # ...
# ...

Pour obtenir un ID d’entrepôt SQL, ouvrez la page des paramètres de l’entrepôt SQL,’puis copiez l’ID trouvé entre des parenthèses après le nom de l’entrepôt dans le champ Nom sous l’onglet Vue d’ensemble.

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > dbt_task dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML. Consultez Tâche dbt pour les projets.

Les packs de ressources Databricks incluent également un modèle de projet dbt-sql qui définit un travail avec une tâche dbt, ainsi que des profils dbt pour les travaux dbt déployés. Pour plus d’informations sur les modèles de packs de ressources Databricks, consultez Utiliser un modèle de pack par défaut.

Exécuter une tâche d’un travail

Vous utilisez cette tâche pour exécuter un autre travail.

L’exemple suivant contient une tâche de travail d’exécution dans le deuxième travail qui exécute le premier travail.

# ...
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}
  # ...

Cet exemple utilise une substitution pour récupérer l’ID du travail à exécuter. Pour obtenir l’ID d’un travail depuis l’interface utilisateur, ouvrez le travail dans l’espace de travail, puis copiez l’ID depuis la valeur de ID de travail dans l’onglet Détails du travail de la page des paramètres des travaux.

Pour obtenir des mappages supplémentaires que vous pouvez définir pour cette tâche, consultez tasks > run_job_task dans la charge utile de demande de création de l’opération de travail telle que définie dans POST /api/2.1/jobs/create dans la référence de l’API REST, exprimée au format YAML.