Partager via


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

Cette page fournit des informations sur la façon de définir des tâches de travail dans databricks Asset Bundles. Pour plus d’informations sur les tâches de travail, consultez Configurer et modifier des tâches dans Les travaux Lakeflow.

Important

Le champ de travail git_source et le champ de tâche sourceGIT définis sur ne sont pas recommandés pour les bundles, car les chemins relatifs locaux peuvent ne pas pointer vers le même contenu dans le référentiel Git. Les bundles supposent qu'un job déployé possède les mêmes fichiers que la copie locale à partir de laquelle il a été déployé.

Au lieu de cela, clonez le référentiel localement et configurez votre projet groupé dans ce référentiel afin que la source des tâches soit l’espace de travail.

Configurer les tâches

Définissez les tâches d'un job dans un ensemble dans la clé tasks de la définition du job. Voici quelques exemples de configuration de tâche pour les types de tâches disponibles dans la section Paramètres de la tâche . Pour plus d’informations sur la définition d’une tâche dans un ensemble, consultez tâche.

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

Pour définir des valeurs de tâche, la plupart des types de tâches ont des paramètres spécifiques à la tâche, 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 au travail exécuté entre les tâches. Pour obtenir des informations complètes sur la façon de transmettre des valeurs de tâche par type de tâche, consultez Détails par type de tâche.

Vous pouvez également remplacer les paramètres généraux des tâches de travail avec les paramètres d’un espace de travail cible. Consultez Remplacer par les paramètres cibles.

L'exemple de configuration suivant définit un job avec deux tâches de bloc-notes et passe une valeur de la première tâche à la deuxième tâche.

resources:
  jobs:
    pass_task_values_job:
      name: pass_task_values_job
      tasks:
        # Output task
        - task_key: output_value
          notebook_task:
            notebook_path: ../src/output_notebook.ipynb

        # Input task
        - task_key: input_value
          depends_on:
            - task_key: output_value
          notebook_task:
            notebook_path: ../src/input_notebook.ipynb
            base_parameters:
              received_message: '{{tasks.output_value.values.message}}'

Le output_notebook.ipynb contient le code suivant, qui définit une valeur de tâche pour la clé message :

# Databricks notebook source
# This first task sets a simple output value.

message = "Hello from the first task"

# Set the message to be used by other tasks
dbutils.jobs.taskValues.set(key="message", value=message)

print(f"Produced message: {message}")

Récupère input_notebook.ipynb la valeur du paramètre received_message, qui a été définie dans la configuration de la tâche :

# This notebook receives the message as a parameter.

dbutils.widgets.text("received_message", "")
received_message = dbutils.widgets.get("received_message")

print(f"Received message: {received_message}")

Paramètres de tâche

Cette section contient des paramètres et des exemples pour chaque type de tâche de travail.

Tâche de bloc-notes de salle propre

La tâche de bloc-notes de salle propre exécute un bloc-notes salle propre lorsque le clean_rooms_notebook_task champ est présent. Pour plus d’informations sur les salles propres, consultez Qu’est-ce qu’Azure Databricks Clean Rooms ?.

Les clés suivantes sont disponibles pour une tâche de bloc-notes de salles propres. Pour obtenir la définition d’objet DE l’API REST correspondante, consultez clean_rooms_notebook_task.

Key Type Descriptif
clean_room_name Chaîne Obligatoire. Salle propre à laquelle appartient le bloc-notes.
etag Chaîne Somme de contrôle pour valider la fraîcheur de la ressource de notebook. Il peut être récupéré en appelant l’opération clean room assets get.
object Carte Paramètres de base à utiliser pour le travail de bloc-notes de salle propre.
notebook_name Chaîne Obligatoire. Nom du bloc-notes en cours d’exécution.

Tâche conditionnelle

Le condition_task vous permet d’ajouter une tâche avec une logique conditionnelle if/else à votre travail. La tâche évalue une condition qui peut être utilisée pour contrôler l’exécution d’autres tâches. La tâche de condition n’exige pas de cluster pour être exécutée et ne prend pas en charge les tentatives ou les notifications. Pour plus d’informations sur la tâche de condition if/else, consultez Ajouter une logique de branchement à un travail avec la tâche If/else.

Les clés suivantes sont disponibles pour une tâche conditionnelle. Pour obtenir la définition d’objet DE l’API REST correspondante, consultez condition_task.

Key Type Descriptif
left Chaîne Obligatoire. Opérande gauche de la condition. Il peut s’agir d’une valeur de chaîne ou d’un état de travail ou d’une référence de valeur dynamique telle que {{job.repair_count}} ou {{tasks.task_key.values.output}}.
op Chaîne Obligatoire. Opérateur à utiliser pour la comparaison. Les valeurs valides sont les suivantes : EQUAL_TO, , NOT_EQUALGREATER_THAN, GREATER_THAN_OR_EQUALLESS_THAN, . LESS_THAN_OR_EQUAL
right Chaîne Obligatoire. Opérande droit de la condition. Il peut s’agir d’une valeur de chaîne ou d’un état de travail ou d’une référence de valeur dynamique.

Examples

L’exemple suivant contient une tâche de condition et une tâche de notebook, où la tâche de notebook s’exécute uniquement si le nombre de réparations de travaux est inférieur à 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

Tâche de tableau de bord

Vous utilisez cette tâche pour actualiser un tableau de bord et envoyer un instantané aux abonnés. Pour plus d’informations sur les tableaux de bord dans les offres groupées, consultez tableau de bord.

Les clés suivantes sont disponibles pour une tâche de tableau de bord. Pour obtenir la définition d’objet API REST correspondante, consultez dashboard_task.

Key Type Descriptif
dashboard_id Chaîne Obligatoire. Identificateur du tableau de bord à actualiser. Le tableau de bord doit déjà exister.
subscription Carte Configuration de l’abonnement pour l’envoi de l’instantané du tableau de bord. Chaque objet d’abonnement peut spécifier les paramètres de destination pour l’emplacement où envoyer des instantanés une fois l’actualisation du tableau de bord terminée. Consultez l’abonnement.
warehouse_id Chaîne ID d’entrepôt pour lequel exécuter le tableau de bord dans le cadre de la programmation. S’il n’est pas spécifié, l’entrepôt par défaut du tableau de bord est utilisé.

Examples

L’exemple suivant ajoute une tâche de tableau de bord à un travail. Lorsque le travail est exécuté, le tableau de bord avec l’ID spécifié est actualisé.

resources:
  jobs:
    my-dashboard-job:
      name: my-dashboard-job
      tasks:
        - task_key: my-dashboard-task
          dashboard_task:
            dashboard_id: 11111111-1111-1111-1111-111111111111

Tâche dbt

Vous utilisez cette tâche pour exécuter une ou plusieurs commandes dbt. Pour plus d’informations sur dbt, consultez Se connecter à dbt Cloud.

Les clés suivantes sont disponibles pour une tâche dbt. Pour obtenir la définition d’objet DE l’API REST correspondante, consultez dbt_task.

Key Type Descriptif
catalog Chaîne Nom du catalogue à utiliser. La valeur du catalogue ne peut être spécifiée que si une warehouse_id valeur est spécifiée. Ce champ nécessite dbt-databricks >= 1.1.1.
commands Sequence Obligatoire. Liste des commandes dbt à exécuter dans une séquence. Chaque commande doit être une commande dbt complète (par exemple, dbt deps, , dbt seeddbt run, dbt test). Jusqu'à 10 commandes peuvent être fournies.
profiles_directory Chaîne Chemin d’accès au répertoire contenant le fichier dbt profiles.yml. Ne peut être spécifié que s'il n'y a aucun warehouse_id spécifié. Si aucun warehouse_id n'est spécifié et que ce dossier n'est pas défini, le répertoire racine est utilisé.
project_directory Chaîne Chemin d’accès au répertoire contenant le projet dbt. S’il n’est pas spécifié, la valeur par défaut est la racine du répertoire du référentiel ou de l’espace de travail. Pour les projets stockés dans l’espace de travail Databricks, le chemin doit être absolu et commencer par une barre oblique. Pour les projets d’un référentiel distant, le chemin d’accès doit être relatif.
schema Chaîne Schéma dans lequel écrire. Ce paramètre est utilisé uniquement lorsqu’un warehouse_id paramètre est également fourni. S’il n’est pas fourni, le schéma par défaut est utilisé.
source Chaîne Type d’emplacement du projet dbt. Les valeurs valides sont WORKSPACE et GIT. Lorsque la valeur est définie WORKSPACE, le projet est récupéré à partir de l’espace de travail Databricks. Lorsque la valeur est définie GIT, le projet est récupéré à partir d’un référentiel Git défini dans git_source. Si vide, la tâche utilise GIT si git_source est définie, sinon WORKSPACE.
warehouse_id Chaîne ID de l’entrepôt SQL à utiliser pour exécuter des commandes dbt. S’il n’est pas spécifié, l’entrepôt par défaut est utilisé.

Examples

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.

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

Conseil

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 Databricks Asset Bundles, consultez modèles de bundle par défaut.

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 chaque tâche

for_each_task vous permet d’ajouter une tâche à votre travail avec une boucle for each. La tâche exécute une tâche imbriquée pour chaque entrée fournie. Pour plus d’informations sur le for_each_task, consultez Utiliser une For each tâche pour exécuter une autre tâche dans une boucle.

Les clés suivantes sont disponibles pour un for_each_task. Pour obtenir la définition d’objet DE l’API REST correspondante, consultez for_each_task.

Key Type Descriptif
concurrency Nombre entier Nombre maximal d’itérations de tâches qui peuvent s’exécuter simultanément. S’il n’est pas spécifié, toutes les itérations peuvent s’exécuter en parallèle sous réserve des limites de cluster et d’espace de travail.
inputs Chaîne Obligatoire. Données d’entrée pour la boucle. Il peut s’agir d’une chaîne JSON ou d’une référence à un paramètre de tableau. Chaque élément du tableau sera passé à une itération de la tâche imbriquée.
task Carte Obligatoire. Définition de tâche imbriquée à exécuter pour chaque entrée. Cet objet contient la spécification complète de la tâche, y compris task_key et le type de tâche (par exemple, notebook_task, python_wheel_tasketc.).

Examples

L’exemple suivant ajoute for_each_task à un travail, où il effectue une boucle sur les valeurs d’une autre tâche et les traite.

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

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 le fichier JAR (Java ou Scala).

Pour plus d’informations sur la compilation et le déploiement de fichiers JAR Scala sur un cluster avec catalogue Unity en mode d’accès standard, consultez tutoriel : Exécuter le code Scala sur le calcul serverless.

Les clés suivantes sont disponibles pour une tâche JAR. Pour obtenir la définition d’objet DE l’API REST correspondante, consultez jar_task.

Key Type Descriptif
jar_uri Chaîne Deprecated. URI du fichier JAR à exécuter. Les chemins de stockage DBFS et cloud sont pris en charge. Ce champ est déconseillé et ne doit pas être utilisé. Utilisez plutôt le libraries champ pour spécifier les dépendances JAR.
main_class_name Chaîne Obligatoire. Nom complet de la classe contenant la méthode principale à exécuter. Cette classe doit être contenue dans un fichier JAR fourni en tant que bibliothèque. Le code doit être utilisé SparkContext.getOrCreate pour obtenir un contexte Spark ; sinon, les exécutions du travail échouent.
parameters Sequence Paramètres passés à la méthode principale. Utilisez des variables de paramètre de tâche pour définir des paramètres contenant des informations sur les exécutions de travaux.

Examples

L’exemple suivant ajoute une tâche JAR à un travail. Le chemin d’accès au fichier JAR est vers un emplacement de volume.

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

Tâche de notebook

Vous utilisez cette tâche pour exécuter un notebook. Consultez Tâche de notebook pour les travaux.

Les clés suivantes sont disponibles pour une tâche de notebook. Pour obtenir la définition d’objet API REST correspondante, consultez notebook_task.

Key Type Descriptif
base_parameters Carte Paramètres de base à utiliser pour chaque exécution de ce travail.
  • Si l’exécution est lancée par un appel aux travaux ou à l’exécution avec les paramètres spécifiés, les deux mappages de paramètres sont fusionnés.
  • Si la même clé est spécifiée dans base_parameters et dans run-now, la valeur de run-now est utilisée. Utilisez des variables de paramètre de tâche pour définir des paramètres contenant des informations sur les exécutions de travaux.
  • Si le bloc-notes accepte un paramètre qui n’est pas spécifié dans les paramètres du base_parameters travail ou le run-now remplacement, la valeur par défaut du bloc-notes est utilisée. Récupérez ces paramètres dans un notebook à l’aide de dbutils.widgets.get.
notebook_path Chaîne Obligatoire. Chemin d’accès du notebook dans l’espace de travail Databricks ou le référentiel distant, par exemple /Users/user.name@databricks.com/notebook_to_run. Pour les notebooks stockés dans l’espace de travail Databricks, le chemin d’accès doit être absolu et commencer par une barre oblique. Pour les notebooks stockés dans un référentiel distant, le chemin d’accès doit être relatif.
source Chaîne Type d’emplacement du bloc-notes. Les valeurs valides sont WORKSPACE et GIT. Lorsque la valeur est définie WORKSPACE, le notebook est récupéré à partir de l’espace de travail Databricks local. Lorsque la valeur est définie GIT, le notebook est récupéré à partir d’un référentiel Git défini dans git_source. Si la valeur est vide, la tâche utilisera GIT si git_source est définie, sinon WORKSPACE.
warehouse_id Chaîne Identifiant de l’entrepôt sur lequel exécuter le carnet de notes. Les entrepôts SQL classiques ne sont pas pris en charge. Utilisez plutôt des entrepôts SQL serverless ou pro. Notez que les entrepôts SQL prennent uniquement en charge les cellules SQL. Si le notebook contient des cellules non-SQL, l’exécution échoue. Par conséquent, si vous devez utiliser Python (ou d’autres) dans une cellule, utilisez serverless.

Examples

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.

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

Tâche de pipeline

Vous utilisez cette tâche pour exécuter un pipeline. Consultez pipelines déclaratifs Lakeflow Spark.

Les clés suivantes sont disponibles pour une tâche de pipeline. Pour obtenir la définition d’objet DE l’API REST correspondante, consultez pipeline_task.

Key Type Descriptif
full_refresh Booléen Si la valeur est true, une actualisation complète du pipeline est déclenchée, ce qui récompute complètement tous les jeux de données du pipeline. Si la valeur est false ou omise, seules les données incrémentielles sont traitées. Pour plus d’informations, consultez la sémantique d’actualisation du pipeline.
pipeline_id Chaîne Obligatoire. ID du pipeline à exécuter. Le pipeline doit déjà exister.

Examples

L’exemple suivant ajoute une tâche de pipeline à un travail. Cette tâche exécute le pipeline spécifié.

Conseil

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

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

Tâche Power BI

Important

Le type de tâche Power BI est disponible en préversion publique.

Utilisez cette tâche pour déclencher une actualisation d’un modèle sémantique Power BI (anciennement appelé jeu de données).

Les clés suivantes sont disponibles pour une tâche Power BI. Pour obtenir la définition d’objet API REST correspondante, consultez power_bi_task.

Key Type Descriptif
connection_resource_name Chaîne Obligatoire. Nom de la connexion du catalogue Unity pour s'authentifier de Databricks vers Power BI.
power_bi_model Chaîne Obligatoire. Nom du modèle sémantique Power BI (jeu de données) à mettre à jour.
refresh_after_update Booléen Indique s’il faut actualiser le modèle sémantique Power BI une fois la mise à jour terminée. La valeur par défaut est false.
tables Sequence Liste des tables (chacune sous forme de carte) à exporter vers Power BI. Consultez les tableaux.
warehouse_id Chaîne ID de l’entrepôt SQL à utiliser comme source de données Power BI.

Examples

L’exemple suivant définit une tâche Power BI, qui spécifie une connexion, le modèle Power BI à mettre à jour et la table Databricks à exporter.

resources:
  jobs:
    my_job:
      name: my_job
      tasks:
        - task_key: power_bi_task
          power_bi_task:
            connection_resource_name: 'connection_name'
            power_bi_model:
              workspace_name: 'workspace_name'
              model_name: 'model_name'
              storage_mode: 'DIRECT_QUERY'
              authentication_method: 'OAUTH'
              overwrite_existing: false
            refresh_after_update: false
            tables:
              - catalog: 'main'
                schema: 'tpch'
                name: 'customers'
                storage_mode: 'DIRECT_QUERY'
            warehouse_id: '1a111111a1111aa1'

Tâche de script Python

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

Les clés suivantes sont disponibles pour une tâche de script Python. Pour obtenir la définition d’objet API REST correspondante, consultez python_task.

Key Type Descriptif
parameters Sequence Paramètres à passer au fichier Python. Utilisez des variables de paramètre de tâche pour définir des paramètres contenant des informations sur les exécutions de travaux.
python_file Chaîne Obligatoire. URI du fichier Python à exécuter, par exemple /Users/someone@example.com/my-script.py. Pour les fichiers Python stockés dans l’espace de travail Databricks, le chemin d’accès doit être absolu et commencer par /. Pour les fichiers stockés dans un référentiel distant, le chemin d’accès doit être relatif. Ce champ ne prend pas en charge les références de valeurs dynamiques telles que les variables.
source Chaîne Type d’emplacement du fichier Python. Les valeurs valides sont WORKSPACE et GIT. Lorsque la valeur est définie WORKSPACE, le fichier est récupéré à partir de l’espace de travail Databricks local. Lorsque la valeur est définie GIT, le fichier est récupéré à partir d’un référentiel Git défini dans git_source. Si la valeur est vide, la tâche utilisera GIT si git_source est définie, sinon WORKSPACE.

Examples

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.

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

Tâche wheel Python

Vous utilisez cette tâche pour exécuter une roue Python. Consultez Créer un fichier de roue Python à l’aide de Bundles de ressources Databricks.

Les clés suivantes sont disponibles pour une tâche de roue Python. Pour obtenir la définition d’objet API REST correspondante, consultez python_wheel_task.

Key Type Descriptif
entry_point Chaîne Obligatoire. Point d’entrée nommé à exécuter : fonction ou classe. S’il n’existe pas dans les métadonnées du package, il exécute la fonction à partir du package directement à l’aide de $packageName.$entryPoint().
named_parameters Carte Les paramètres nommés à passer à la tâche de roue Python, également appelés arguments de mot clé. Un paramètre nommé est une paire clé-valeur avec une clé de chaîne et une valeur de chaîne. Les deux parameters et named_parameters ne peuvent pas être spécifiés. Si named_parameters est spécifié, parameters sont passés en tant qu’arguments nommés à la fonction de point d’entrée.
package_name Chaîne Obligatoire. Nom du package Python à exécuter. Toutes les dépendances doivent être installées dans l’environnement. Cela ne vérifie pas ou n’installe aucune dépendance de package.
parameters Sequence Les paramètres à passer à la tâche Python wheel, également appelés arguments positionnels. Chaque paramètre est une chaîne. Si elle est spécifiée, named_parameters ne doit pas être spécifiée.

Examples

L’exemple suivant ajoute une tâche wheel Python à un travail. Le chemin d’accès du fichier wheel Python à déployer est relatif au fichier de configuration dans lequel cette tâche est déclarée. Consultez Dépendances de bibliothèque de packs de ressources Databricks.

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

Exécuter une tâche de travail

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

Les clés suivantes sont disponibles pour une tâche de travail d’exécution. Pour obtenir la définition d’objet API REST correspondante, consultez run_job_task.

Key Type Descriptif
job_id Nombre entier Obligatoire. ID de la tâche à exécuter. La tâche doit déjà exister dans l’espace de travail.
job_parameters Carte Les paramètres de niveau tâche à transmettre à la tâche en cours d'exécution. Ces paramètres sont accessibles dans les tâches du travail.
pipeline_params Carte Paramètres de la tâche de pipeline. Utilisé uniquement si le travail en cours d’exécution contient une tâche de pipeline. Peut inclure full_refresh pour déclencher une actualisation complète du pipeline.

Examples

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

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

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}

Tâche SQL

Vous utilisez cette tâche pour exécuter un fichier SQL, une requête ou une alerte.

Les clés suivantes sont disponibles pour une tâche SQL. Pour obtenir la définition d’objet API REST correspondante, consultez sql_task.

Key Type Descriptif
alert Carte Configuration pour l’exécution d’une alerte SQL. Contient:
  • alert_id (Chaîne) : Obligatoire. Identificateur canonique de l’alerte SQL à exécuter.
  • pause_subscriptions (Boolean) : indique s’il faut suspendre les abonnements aux alertes.
  • subscriptions (Séquence) : liste des paramètres d’abonnement.
dashboard Carte Configuration pour actualiser un tableau de bord SQL. Contient:
  • dashboard_id (Chaîne) : Obligatoire. Identificateur canonique du tableau de bord SQL à actualiser.
  • custom_subject (String) : objet personnalisé de l’e-mail envoyé aux abonnés au tableau de bord.
  • pause_subscriptions (Boolean) : indique s’il faut suspendre les abonnements de tableau de bord.
  • subscriptions (Séquence) : liste des paramètres d’abonnement.
file Carte Configuration pour l’exécution d’un fichier SQL. Contient:
  • path (Chaîne) : Obligatoire. Chemin d’accès du fichier SQL dans l’espace de travail ou le référentiel distant. Pour les fichiers stockés dans l’espace de travail Databricks, le chemin d’accès doit être absolu et commencer par un slash. Pour les fichiers stockés dans un référentiel distant, le chemin d’accès doit être relatif.
  • source (String) : type d’emplacement du fichier SQL. Les valeurs valides sont WORKSPACE et GIT.
parameters Carte Paramètres à utiliser pour chaque exécution de cette tâche. Les requêtes et fichiers SQL peuvent utiliser ces paramètres en les référençant avec la syntaxe {{parameter_key}}. Utilisez des variables de paramètre de tâche pour définir des paramètres contenant des informations sur les exécutions de travaux.
query Carte Configuration pour l’exécution d’une requête SQL. Contient:
  • query_id (Chaîne) : Obligatoire. Identificateur canonique de la requête SQL à exécuter.
warehouse_id Chaîne Obligatoire. ID de l’entrepôt SQL à utiliser pour exécuter la tâche SQL. L’entrepôt SQL doit déjà exister.

Examples

Conseil

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

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

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

L’exemple suivant ajoute une tâche d’alerte SQL à un travail. Cette tâche d’alerte SQL utilise l’entrepôt SQL spécifié pour actualiser l’alerte SQL spécifiée.

resources:
  jobs:
    my-sql-file-job:
      name: my-sql-alert-job
      tasks:
        - task_key: my-sql-alert-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            alert:
              alert_id: 11111111-1111-1111-1111-111111111111

L’exemple suivant ajoute une tâche de requête SQL à un travail. Cette tâche de requête SQL utilise l’entrepôt SQL spécifié pour exécuter la requête SQL spécifiée.

resources:
  jobs:
    my-sql-query-job:
      name: my-sql-query-job
      tasks:
        - task_key: my-sql-query-task
          sql_task:
            warehouse_id: 1a111111a1111aa1
            query:
              query_id: 11111111-1111-1111-1111-111111111111

Autres paramètres de tâche

Les paramètres de tâche suivants vous permettent de configurer des comportements pour toutes les tâches. Pour connaître les définitions d’objets API REST correspondantes, consultez les tâches.

Key Type Descriptif
depends_on Sequence Liste facultative des dépendances de tâche. Chaque élément contient :
  • task_key (Chaîne) : Obligatoire. La clé de la tâche dont dépend cette tâche.
  • outcome (Chaîne) : ne peut être spécifié que pour condition_task. Si elle est spécifiée, la tâche dépendante s’exécute uniquement si la condition prend la valeur du résultat spécifié (soit truefalse).
description Chaîne Description facultative de la tâche.
disable_auto_optimization Booléen Indique s’il faut désactiver l’optimisation automatique pour cette tâche. Si la valeur est true, les optimisations automatiques telles que l’exécution de requêtes adaptatives sont désactivées.
email_notifications Carte Ensemble facultatif d’adresses e-mail à notifier lorsqu’une exécution commence, se termine ou échoue. Chaque élément contient :
  • on_start (Séquence) : liste des adresses e-mail à notifier lorsqu’une exécution démarre.
  • on_success (Séquence) : liste des adresses e-mail à notifier lorsqu’une exécution se termine correctement.
  • on_failure (Séquence) : liste des adresses e-mail à notifier lorsqu’une exécution échoue.
  • on_duration_warning_threshold_exceeded (Séquence) : liste des adresses e-mail à notifier lorsque la durée de l’exécution dépasse le seuil.
  • on_streaming_backlog_suceeded (Séquence) : liste des adresses e-mail à notifier lorsque des seuils de backlog de streaming sont dépassés pour n’importe quel flux.
environment_key Chaîne Clé d’un environnement défini dans la configuration du travail environments. Permet de spécifier des paramètres spécifiques à l’environnement. Ce champ est requis pour les tâches python, de roue Python et de dbt lors de l’utilisation du calcul serverless.
existing_cluster_id Chaîne ID d’un cluster existant qui sera utilisé pour toutes les exécutions de cette tâche.
health Carte Spécification facultative pour la surveillance de la santé de cette tâche, incluant une clé rules, qui est une liste de règles de santé à évaluer.
job_cluster_key Chaîne Clé d’un cluster de travaux défini dans la configuration du job_clusters travail.
libraries Sequence Liste facultative des bibliothèques à installer sur le cluster qui exécutera la tâche. Chaque bibliothèque est spécifiée sous la forme d’une carte avec des clés telles que jar, , eggwhlpypi, , maven, cranou .requirements
max_retries Nombre entier Nombre maximal facultatif de tentatives de la tâche en cas d’échec. Si elle n’est pas spécifiée, la tâche ne sera pas retentée.
min_retry_interval_millis Nombre entier Intervalle minimal facultatif en millisecondes entre le début de l’exécution ayant échoué et l’exécution de nouvelle tentative suivante. S’il n’est pas spécifié, la valeur par défaut est 0 (nouvelle tentative immédiate).
new_cluster Carte Spécification d’un nouveau cluster à créer pour chaque exécution de cette tâche. Voir cluster.
notification_settings Carte Paramètres de notification facultatifs pour cette tâche. Chaque élément contient :
  • no_alert_for_skipped_runs (Boolean) : Si la valeur est true, n’envoyez pas de notifications pour les exécutions ignorées.
  • no_alert_for_canceled_runs (Boolean) : Si la valeur est true, n’envoyez pas de notifications pour les exécutions annulées.
  • alert_on_last_attempt (Boolean) : Si la valeur est true, envoyez des notifications uniquement lors de la dernière nouvelle tentative.
retry_on_timeout Booléen Stratégie facultative pour spécifier s’il faut réessayer la tâche lorsqu’elle expire. S’il n’est pas spécifié, la valeur par défaut est false.
run_if Chaîne Valeur facultative indiquant la condition sous laquelle la tâche doit s’exécuter. Les valeurs valides sont les suivantes :
  • ALL_SUCCESS (valeur par défaut) : exécutez si toutes les dépendances réussissent.
  • AT_LEAST_ONE_SUCCESS : Exécuté si au moins une des dépendances est réussie.
  • NONE_FAILED: Exécutez si aucune dépendance n’a échoué.
  • ALL_DONE: Exécuter une fois toutes les dépendances terminées, quel que soit le résultat.
  • AT_LEAST_ONE_FAILED: Exécuter si au moins une dépendance échoue.
  • ALL_FAILED: Exécuter si toutes les dépendances échouent.
task_key Chaîne Obligatoire. Nom unique de la tâche. Ce champ est utilisé pour faire référence à cette tâche à partir d’autres tâches à l’aide du depends_on champ.
timeout_seconds Nombre entier Délai d’expiration facultatif appliqué à chaque exécution de cette tâche. La valeur 0 signifie qu’aucun délai d’expiration n’est nécessaire. S’il n’est pas défini, le délai d’expiration par défaut de la configuration du cluster est utilisé.
webhook_notifications Carte Ensemble facultatif de destinations système à notifier lorsqu’une exécution commence, se termine ou échoue. Chaque élément contient :
  • on_start (Séquence) : liste des destinations de notification au démarrage d’une exécution.
  • on_success (Séquence) : liste des destinations de notification lorsqu’une exécution est terminée.
  • on_failure (Séquence) : liste des destinations de notification en cas d’échec d’une exécution.
  • on_duration_warning_threshold_exceeded (Séquence) : liste des destinations de notification lorsque la durée d’exécution dépasse le seuil.
  • on_streaming_backlog_suceeded (Séquence) : liste des adresses e-mail à notifier lorsque des seuils de backlog de streaming sont dépassés pour n’importe quel flux.