Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
|
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:
|
dashboard |
Carte | Configuration pour actualiser un tableau de bord SQL. Contient:
|
file |
Carte | Configuration pour l’exécution d’un fichier SQL. Contient:
|
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:
|
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 :
|
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 :
|
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 :
|
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 :
|
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 :
|