Overriding
Je peux faire mieux, faisons de l'overriding!
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:
- Créer dans
cssXX.dashboards_storeun fichier nomméoverride_me_plz.sql- Vous devriez probablement reproduire la structure de dossiers du fichier que vous remplacez.
- Dire à dbt de ne pas utiliser l'implémentation core de
override_me_plz.sqlen ajoutant l'extrait suivant dansdbt_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:
- Je crée d'abord un fichier nommé
fact_retirement.sqldanscssXX.dashboards_store/models/marts/human_resources/features/retirement/fact_retirement.sql, contenant ma propre implémentation. - 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.
Activer une ressource
Par défaut, le Store ne matérialise rien. Vous devez activer les modèles que vous voulez matérialiser. Cela évite de matérialiser des données inutiles: si vous ne vous intéressez qu'à un seul dashboard, vous n'avez pas besoin de matérialiser tout le core_dashboards_store.
Introduction
