Configurer les paramètres de job dans les Declarative Automation Bundles
Les variables de bundle et les parameters de Job fonctionnent ensemble dans les Declarative Automation Bundles pour vous permettre de remplacer les defaults spécifiques à l'environnement lors de l'exécution. Les variables de bundle sont définies dans la configuration et sont résolues lors du déploiement. Les parameters Job sont résolus lorsqu'un Job s'exécute, de sorte que les valeurs par default peuvent être remplacées sans redéploiement.
Variables de bundle ou paramètres de Job
Sélectionnez s'il faut utiliser des variables ou des paramètres de Job en fonction du moment où les valeurs doivent changer :
Si la valeur change... | Utilisation | Exemple |
|---|---|---|
Par environnement (dév, préprod, prod) | Variables de bundle | Taille du cluster, ID du warehouse |
Par exécution de Job | Paramètres du job | Date de traitement, table source |
Par tâche, lorsqu’aucun paramètre de job n’existe | Tâche | Chemins d'accès aux fichiers spécifiques à une tâche |
Définir les default des paramètres de Job à l'aide de variables.
Databricks recommande d'utiliser les variables de bundle comme valeur par default pour les paramètres de job. Ceci vous donne des valeurs par default spécifiques à l’environnement qui peuvent être remplacées lors de l’exécution.
Dans l'exemple suivant, le catalog parameter default à biz_dev pour un déploiement de développement. Il default à biz_prod pour un déploiement de production.
# databricks.yml
variables:
default_catalog:
description: Environment-specific catalog
default: dev_catalog
targets:
dev:
variables:
default_catalog: biz_dev
prod:
variables:
default_catalog: biz_prod
resources:
jobs:
etl_pipeline:
name: etl_pipeline
parameters:
- name: catalog
default: ${var.default_catalog}
- name: processing_date
default: '{{job.start_time.iso_date}}'
- name: mode
default: incremental
tasks:
- task_key: process_data
notebook_task:
notebook_path: ./notebooks/process.py
Limitations
La validation du bundle n'autorise pas les parameters au niveau du job et les base_parameters au niveau de la tâche dans le même job. Cette restriction provient de l'API. Si vous ajoutez un bloc parameters au niveau du job, déplacez toutes les base_parameters au niveau du job également.
resources:
jobs:
my_job:
parameters:
- name: catalog
default: dev
- name: schema
default: default
tasks:
- task_key: task1
notebook_task:
notebook_path: ./notebook.py
Si vous avez besoin de paramètres spécifiques aux tâches et que vous n'avez pas de bloc de parameters au niveau du Job, utilisez base_parameters sur la tâche. Après avoir ajouté des parameter au niveau du Job, déplacez tous les parameter de tâche au niveau du Job.
Remplacer les paramètres à l'exécution
Pour remplacer les valeurs des paramètres de job lorsqu'un job est exécuté, transmettez de nouvelles valeurs :
- CLI
- REST API
- UI
Utilisez les doubles tirets (--) pour indiquer que les indicateurs de commande sont des paramètres de Job. Voir Passer des paramètres de Job
databricks bundle run my_job -- --catalog=prod --mode=full_refresh
{
"job_id": 123,
"job_parameters": {
"catalog": "prod",
"mode": "full_refresh"
}
}
- Ouvrez le Job dans le Databricks Workspace.
- Cliquez sur Exécuter maintenant .
- Sélectionnez l'option pour exécuter avec différents parameters.
Dépannage
Les sections suivantes peuvent vous aider à résoudre certains problèmes courants liés aux paramètres de Job.
Les valeurs des parameters ne changent pas à l'exécution
Les variables de bundle sont résolues au moment du déploiement. Si vous avez besoin qu'une valeur puisse être remplacée à l'exécution, définissez-la comme un paramètre de Job avec la variable de bundle comme default, et non comme une référence ${var.name} dans le code ou la configuration de la tâche. Une fois déployées, les default des paramètres de Job peuvent être remplacées lors de l'exécution sans redéploiement.
Paramètres non disponibles dans le Notebook
Si un paramètre de job n'est pas disponible dans un Notebook, veuillez vérifier tout ce qui suit :
- Les paramètres sont définis dans la section
parametersdu Job. - Le Notebook utilise
dbutils.widgets.get("name")pour accéder à chaque paramètre. - Le nom du paramètre correspond exactement, y compris la casse.
- Le bundle a été redéployé après l'ajout ou le renommage de parameters.