Aller au contenu principal

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 base_parameters

Chemins d'accès aux fichiers spécifiques à une tâche

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 base_parameters

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.

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

YAML
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 :

Utilisez les doubles tirets (--) pour indiquer que les indicateurs de commande sont des paramètres de Job. Voir Passer des paramètres de Job

Bash
databricks bundle run my_job -- --catalog=prod --mode=full_refresh

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 parameters du 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.

Ressources supplémentaires