Configuration

Overriding

Je peux faire mieux, faisons de l'overriding!

Comprendre le concept dbt de resource-path est essentiel pour remplacer une ressource. Consultez la documentation si le concept est nouveau pour vous.

Qu'est-ce que l'overriding?

Le projet core.dashboards_store fournit seulement une implémentation par défaut raisonnable. Vous voulez peut-être ajouter un KPI à un dashboard ou modifier une partie d'un script SQL. Vous pouvez le faire en remplaçant l'implémentation par défaut. Tout peut être remplacé. Ne soyez donc pas timide: appropriez-vous le Store.

Où se fait l'overriding?

L'overriding se fait toujours dans votre projet cssXX.dashboards_store. Ne modifiez pas manuellement core.dashboards_store, car cela rendrait les montées de version infernales.

Comment faire de l'overriding

Pour remplacer un script nommé override_me_plz.sql, vous devez:

  1. Créer dans cssXX.dashboards_store un fichier nommé override_me_plz.sql
    • Vous devriez probablement reproduire la structure de dossiers du fichier que vous remplacez.
  2. Dire à dbt de ne pas utiliser l'implémentation core de override_me_plz.sql en ajoutant l'extrait suivant dans dbt_project.yml:
#cssXX.dashboards_store/dbt_project.yml
<models|seeds|tests>: # Choisir la cle de ressource a remplacer
  core_dashboards_store:
    <path_to_resource>: # Chemin de la ressource a remplacer, une cle par segment
      override_me_plz:
        +enabled: False
<models|seeds|tests>: utilisez models pour remplacer un modèle, seeds pour remplacer une seed et tests pour désactiver ou remplacer un test.

Exemple

Remplacer un script SQL

Supposons que je veuille remplacer le fichier défini dans core.dashboards_store/models/marts/human_resources/features/retirement/fact_retirement.sql:

  1. Je crée d'abord un fichier nommé fact_retirement.sql dans cssXX.dashboards_store/models/marts/human_resources/features/retirement/fact_retirement.sql, contenant ma propre implémentation.
  2. J'ajoute ensuite l'extrait suivant dans dbt_project.yml:
#cssXX.dashboards_store/dbt_project.yml
models:
  core_dashboards_store:
    marts:
      human_resources:
        features:
          retirement:
            fact_retirement:
              +enabled: False

Lors de l'exécution de dbt, ma propre définition sera utilisée comme remplacement direct de l'implémentation core.

Copyright © 2026