Références de valeurs dynamiques
Les références de valeurs dynamiques décrivent une collection de variables disponibles lors de la configuration des Jobs et des tâches. Utilisez des références de valeur dynamiques pour configurer des instructions conditionnelles pour les tâches ou pour transmettre des informations en tant que paramètres ou arguments.
Les références de valeurs dynamiques incluent des informations telles que :
- Valeurs configurées pour le job, y compris le nom du job, les noms des tâches et le type de trigger.
- Métadonnées générées concernant le Job, y compris l’ID du Job, l’ID d’exécution et l’heure de start de l’exécution du Job.
- Information sur le nombre de tentatives de réparation ou de relances d'une tâche de Job.
- L'état du résultat pour une tâche spécifiée.
- Valeurs configurées à l'aide de paramètres de Job, de paramètres de tâche ou définies à l'aide de valeurs de tâche.
Pour savoir comment chaque type de tâche récupère les valeurs de paramètre, consultez Accéder aux valeurs de paramètre à partir d'une tâche.
Utiliser les références de valeur dynamiques
Utilisez des références de valeur dynamiques lors de la configuration des Jobs ou des tâches. Vous ne pouvez pas référencer directement les références de valeur dynamiques à partir des assets configurés à l'aide de tâches telles que les Notebooks, les query ou les JAR. Les références de valeur dynamiques doivent être définies à l'aide de paramètres ou de champs qui transmettent le contexte aux tâches.
Les références de valeur dynamique utilisent des doubles accolades ({{ }}). Lorsqu'un Job ou une tâche s'exécute, un littéral de chaîne remplace la référence de valeur dynamique. Par exemple, si vous configurez la paire clé-valeur suivante comme parameter de tâche :
{"job_run_id": "job_{{job.run_id}}"}
Si votre ID d'exécution est 550315892394120, la valeur de job_run_id est évaluée à job_550315892394120.
Le contenu des doubles accolades n’est pas évalué comme des expressions. Vous ne pouvez pas exécuter d’opérations ou de fonctions dans des doubles accolades.
Les identifiants de valeur fournis par l'utilisateur acceptent les caractères alphanumériques et de soulignement. Échapper les clés qui contiennent des caractères spéciaux en encadrant l'identifiant avec des accents graves (` `).
Les erreurs de syntaxe, y compris les valeurs de référence dynamique inexistantes et les accolades manquantes, sont ignorées silencieusement et traitées comme des chaînes de caractères littérales. Cependant, si vous fournissez une référence qui appartient à un espace de noms connu mais qui n'est pas valide, par exemple, {{job.notebook_url}}, un message d'erreur s'affiche.
Utilisez les références de valeurs dynamiques dans l'interface utilisateur des Jobs.
Les champs qui acceptent les références de valeur dynamique fournissent un raccourci pour insérer les références de valeur dynamique disponibles. Cliquez sur { } pour voir cette liste et l'insérer dans le champ fourni.
L’interface utilisateur ne complète pas automatiquement les clés pour référencer les valeurs de tâche.
De nombreux champs qui acceptent des références de valeurs dynamiques nécessitent un formatage supplémentaire pour les utiliser correctement. Voir Configurer les paramètres de tâche.
Utilisez des références de valeur dynamique dans un JSON de job
Utilisez la syntaxe {{ }} pour utiliser des valeurs dynamiques dans les définitions JSON de Job utilisées par la CLI Databricks et l'API REST.
Les paramètres de Job et de tâche ont une syntaxe différente, et la syntaxe des paramètres de tâche varie selon le type de tâche.
L’exemple suivant montre la syntaxe JSON partielle pour configurer les paramètres de job à l’aide de références de valeurs dynamiques :
{
"parameters": [
{
"name": "my_job_id",
"default": "{{job.id}}"
},
{
"name": "run_date",
"default": "{{job.start_time.iso_date}}"
}
]
}
L’exemple suivant montre la syntaxe JSON partielle pour configurer les parameters d’une tâche Notebook à l’aide d’une référence de valeur dynamique :
{
"notebook_task": {
"base_parameters": {
"workspace_id": "workspace_{{workspace.id}}",
"file_arrival_location": "{{job.trigger.file_arrival.location}}"
}
}
}
Examiner les paramètres d'une exécution de job
Une fois la tâche terminée, vous pouvez consulter les valeurs de paramètre résolues sous Paramètres sur la page des détails de l'exécution. Voir les détails d'exécution du Job.
Références de valeurs prises en charge
Les références de valeurs dynamiques suivantes sont prises en charge :
Référence | Description |
|---|---|
| L'identifiant unique attribué au Job. |
| Nom du Job au moment de son exécution. |
| L'identifiant unique attribué à l'exécution du Job. |
| Le nombre de tentatives de réparation sur l'exécution de job en cours. |
| Une valeur basée sur l'heure (dans le fuseau horaire UTC) à laquelle l'exécution du Job a démarré. La valeur renvoyée est basée sur l'option |
| La valeur du paramètre au niveau du Job avec la clé |
| Le type de Trigger de l'exécution du Job. Les valeurs possibles sont |
| Si un trigger d'arrivée de fichier est configuré pour ce job, la valeur de l'emplacement de stockage. |
| Si un table update Trigger est configuré pour ce job, une liste JSON des tables mises à jour depuis la dernière exécution du job au format |
| Si un Trigger de mise à jour de table est configuré pour ce job, le timestamp de commit le plus récent qui a déclenché l'exécution du job. Si une seule table est surveillée, vous pouvez omettre le nom de la table : |
| Si un trigger de mise à jour de table est configuré pour ce job, la version de commit la plus récente qui a déclenché l'exécution du job. Si une seule table est surveillée, vous pouvez omettre le nom de la table : |
| Si un Trigger de mise à jour de modèle est configuré pour ce job, une liste JSON des mises à jour de modèle depuis la dernière exécution du job. Chaque entrée inclut le nom du modèle. Selon la condition du trigger, les entrées peuvent également inclure le nom de la version et de l'alias. |
| Une valeur basée sur l'heure (dans le fuseau horaire UTC) à laquelle l'exécution du job a été déclenchée, arrondie à la minute la plus proche pour les jobs avec un calendrier cron. La valeur renvoyée est basée sur l'option |
| Le nom de la tâche en cours. |
| L’identifiant unique de l’exécution de tâche actuelle. |
| Nombre de fois où la tâche en cours a été exécutée (nouvelles tentatives et réparations comprises). |
| Le chemin du notebook de la tâche de notebook en cours. |
| L'identifiant unique attribué à l'exécution de la tâche pour |
| Le nom du catalogue de sortie pour une tâche de salle blanche en amont. |
| Le nom du schéma de sortie pour une tâche de salle blanche en amont. Ce schéma stocke toutes les sorties de l'exécution de la tâche de salle blanche. |
| Le résultat de la tâche « |
| Le code d'erreur pour la tâche |
| Le nombre de fois où la tâche |
| Le chemin du Notebook pour la tâche de Notebook |
| La valeur de la tâche avec la clé |
| Les lignes de sortie d’une tâche SQL en amont |
| La première ligne de la sortie d'une tâche SQL en amont |
| La valeur de la colonne |
| L'état d'une tâche d'alerte SQL en amont. La valeur est l'une des suivantes : |
| L'identifiant unique attribué au Workspace. |
| L'URL du Workspace. |
| La partie jour du start de la plage horaire pour l'exécution spécifique du Job de rattrapage. Voir les jobs de backfill. |
| Retourne |
| La date ISO du start de la plage de temps pour l'exécution spécifique du Job de remplissage. |
| La date et l'heure ISO du start de la plage horaire pour l'exécution du Job de remplissage spécifique. |
| Renvoie un chiffre de 1 à 7, représentant le jour de la semaine du start de la plage horaire pour l'exécution du Job de remplissage spécifique. |
| La partie mois du start de la plage horaire pour l'exécution de job de remplissage spécifique. |
| Le timestamp du start de la plage horaire pour l'exécution du Job de remplissage spécifique. |
| La partie année du start de la plage horaire pour l'exécution du Job de remplissage spécifique. |
Vous pouvez définir ces références avec n'importe quelle tâche. Consultez Configurer les paramètres de tâche. Les paramètres de remplissage ne sont disponibles que lors de la création d'un Job de remplissage.
Vous pouvez également transmettre des paramètres entre les tâches d'un Job avec des valeurs de tâche . Consultez Utiliser les valeurs de tâche pour transmettre des informations entre les tâches.
Options pour les valeurs de date et d'heure
Utilisez les arguments suivants pour spécifier la valeur de retour des variables de paramètre basées sur le temps. Toutes les valeurs de retour sont basées sur un timestamp dans le fuseau horaire UTC.
Argument | Description |
|---|---|
| Renvoie un chiffre de 1 à 7, représentant le jour de la semaine du Timestamp. |
| Renvoie |
| Renvoie la date au format ISO. |
| Retourne la date et l’heure au format ISO. |
| Renvoie la partie année du Timestamp. |
| Renvoie la partie mois du timestamp. |
| Renvoie la partie jour du Timestamp. |
| Renvoie la partie heure du timestamp. |
| Renvoie la partie minutes de l'Timestamp. |
| Renvoie la seconde partie du timestamp. |
| Renvoie le timestamp en millisecondes. |
Options de sortie SQL
Vous pouvez accéder à la sortie d'une tâche SQL en amont à l'aide de valeurs dynamiques.
Par exemple, si vous avez une tâche SQL appelée sales_by_year avec le SQL suivant, elle génère une sortie basée sur la dernière instruction SELECT.
-- Generate example data
CREATE OR REPLACE TEMP VIEW example_sales AS
SELECT * FROM VALUES
(2020, 12),
(2021, 23),
(2022, 47),
(2023, 15),
(2024, 22)
AS example_sales(sales_year, num_sales);
-- Query example data
SELECT sales_year, num_sales FROM example_sales;
Vous pouvez référencer la sortie dans une tâche en aval en créant une configuration de tâche à l'aide d'une valeur dynamique {{tasks.<task_name>.output.<argument>}}.
Dans les tâches For each, les lignes sont envoyées de manière itérative à la tâche imbriquée. Dans cet exemple, si vous définissiez les Inputs d'une tâche For each sur {{tasks.sales_by_year.output.rows}}, vous pourriez alors, dans la tâche imbriquée, utiliser la syntaxe {{input.<column_alias>}} pour envoyer itérativement les valeurs de ligne comme parameters. Dans la configuration de la tâche imbriquée, vous pouvez créer deux parameters avec les paires clé-valeur year:{{input.sales_year}} et sales:{{input.num_sales}}. En supposant que la tâche imbriquée soit une tâche SQL, vous pourriez référencer les valeurs de votre code avec une query telle que la suivante.
-- Example: access data from previous query:
SELECT concat('In ', :year, ' we had ', :sales, ' sales.')
Pour plus d'information sur les tâches For each et leurs tâches imbriquées, voir Utiliser une tâche For each pour exécuter une autre tâche en boucle.
Le résultat de la query SQL est conservé pendant 7 jours. Si le Job est mis en pause (par exemple, en cas d'échec), puis reprise plus de 7 jours plus tard, la sortie de la requête SQL n'est pas disponible.
Références de valeurs dynamiques obsolètes
Les références de valeur dynamiques suivantes sont obsolètes. La référence de remplacement recommandée est incluse dans la description de chaque variable.
Variable | Description |
|---|---|
| L'identifiant unique attribué à un Job. Utilisez |
| L'identifiant unique attribué à une exécution de tâche. Utilisez |
| La date de start d'une exécution de tâche. Le format est AAAA-MM-JJ dans le fuseau horaire UTC. Utilisez |
| Le timestamp du start d’exécution du run après que le cluster est créé et prêt. Le format est en millisecondes depuis l’époque UNIX dans le fuseau horaire UTC, tel que renvoyé par |
| Le nombre de tentatives de relance d'une tâche si la première tentative échoue. La valeur est 0 pour la 1re tentative et s'incrémente à chaque nouvelle tentative. Utilisez |
| L'identifiant unique attribué à l'exécution d'un job avec plusieurs tâches. Utilisez |
| Le nom unique attribué à une tâche qui fait partie d'un Job avec plusieurs tâches. Utilisez |