Catalogue des modèles de dbt_bigquery_monitoring

Résumé

Annexe de référence de dbt_bigquery_monitoring : les modèles du domaine models/monitoring/ avec leur matérialisation, la vue INFORMATION_SCHEMA ou la source qui les alimente. À consulter, pas à lire en entier.

Périssable

Ce catalogue correspond à une version 0.x du package ; il décrit un package open source (licence MIT, © les auteurs de bqbooster/dbt-bigquery-monitoring) dont la version la plus récente consultée le 24 octobre 2026 est la v0.26.5 (14 octobre 2026). Les noms de modèles, les colonnes et les valeurs par défaut peuvent changer d’une version à l’autre : se référer à la documentation amont (github.com/bqbooster/dbt-bigquery-monitoring) avant de s’appuyer sur un détail.

Inventaire des modèles

Légende de la colonne Source exacte : nom de la vue INFORMATION_SCHEMA réellement interrogée en bout de chaîne (ex. IS.JOBS), ou Billing (export de facturation détaillé GCP, table brute), ou Logs (Cloud Audit Logs, table brute du sink Cloud Logging). IS↔Logs = bascule selon la config, toujours via jobs_with_cost (voir note 1 sous Base) ; dans ce cas la source par défaut est IS.JOBS.

Base (models/monitoring/base/)

Modèles bruts combinant jobs/stockage et coût, socle des couches suivantes, pas destinés à l’usage direct en dashboard.

ModèleMatér.Source exacteObjectif
bigquery_audit_logs_v2ephemeralLogs (table brute du sink)Lecture directe de la table exportée par le sink Cloud Logging
bigquery_audit_logsephemeralLogs (via bigquery_audit_logs_v2)Normalise les champs bruts du log d’audit
jobs_from_audit_logsviewLogs (parse protopayload_auditlog.metadataJson)Reconstruit un schéma proche de JOBS à partir du JSON de l’audit log
combined_jobs_inputsephemeralIS.JOBS + LogsFusionne les deux sources sans perte de champ
jobs_with_costview (voir note 2)IS↔Logs (voir note 1), IS.JOBS par défautModèle pivot : ajoute query_cost (flat ou on-demand), dbt_model_name, client_type
jobs_by_project_with_costview (voir note 2)IS↔Logs (via jobs_with_cost, SELECT * strict)Alias de jobs_with_cost par projet explicite
gcp_billing_export_resource_v1ephemeral, enabled=enable_gcp_billing_export()Billing (table brute)Extrait les colonnes de coût/usage de l’export de facturation détaillé
dataset_optionsview (voir note 2)IS.SCHEMATA_OPTIONSOption de facturation stockage par dataset
storage_with_costview (voir note 2)IS.TABLE_STORAGEAjoute les coûts logique/physique et le forecast mensuel
table_and_storage_with_costview (voir note 2)IS.TABLES + storage_with_costJointure table + stockage + coût

Note 1 : Bascule de source de jobs_with_cost (et donc de tout ce qui en descend) : IS.JOBS par défaut ; jobs_from_audit_logs seul si enable_gcp_bigquery_audit_logs=true sans combinaison ; combined_jobs_inputs (les deux fusionnés) si enable_gcp_bigquery_audit_logs=true et should_combine_audit_logs_and_information_schema=true.

Note 2 : Matérialisation dynamique (macro materialized_as_view_if_explicit_projects) : toujours une forme de vue, view par défaut, ou project_by_project_view (une vue par projet, unionnées) si la variable input_gcp_projects liste des projets explicites. Jamais matérialisé en table par cette macro, quelle que soit la configuration.

Compute (models/monitoring/compute/)

Intermédiaires : tous incremental :

ModèleSource exacte
compute_billing_per_hourBilling, enabled=enable_gcp_billing_export()
compute_rollup_per_minuteIS↔Logs, via jobs_with_cost
compute_rollup_per_hourIS↔Logs, agrégat de compute_rollup_per_minute
compute_cost_per_minuteIS↔Logs, via jobs_with_cost (macro jobs_done_incremental_hourly)
compute_cost_per_hourIS↔Logs, agrégat de compute_cost_per_minute
jobs_costs_incrementalIS↔Logs, via jobs_with_cost
models_costs_incrementalIS↔Logs, via jobs_with_cost
users_costs_incrementalIS↔Logs, via jobs_with_cost
reservation_usage_per_minuteIS.RESERVATIONS_TIMELINE + IS↔Logs (via compute_cost_per_minute)
reservation_usage_per_houridem, agrégat de reservation_usage_per_minute

(models_costs_incremental identifie les jobs dbt via dbt_model_name, un champ dérivé dans jobs_with_cost à partir du commentaire de requête généré par dbt et des labels du job, pas via une source externe dédiée.)

Datamarts :

ModèleMatér.Source exacteUse case
most_expensive_jobsviewIS↔Logs, via jobs_costs_incrementalTop jobs coûteux, cibler l’optimisation
slowest_jobsviewidem, filtre rank_durationJobs les plus lents, diagnostic de performance
most_repeated_jobsviewidemRequêtes identiques répétées, candidates cache/vue matérialisée
job_failure_analysisviewidem, filtre error_result IS NOT NULLÉchecs par type d’erreur/utilisateur/coût, debug
error_rate_over_timeviewidemTaux d’échec dans le temps, alerting fiabilité
job_timeline_analysisviewIS.JOBS_TIMELINE (direct, pas via jobs_with_cost)Slots, temps de queue, efficacité, champs propres à JOBS_TIMELINE, absents de JOBS
materialization_candidatesviewIS↔Logs, via jobs_costs_incrementalRequêtes chères + faible cache hit → vue matérialisée/scheduled query
query_with_better_pricing_using_on_demand_viewviewIS↔Logs, via jobs_with_costRequêtes qui coûteraient moins cher en tarification à la demande
query_with_better_pricing_using_flat_pricing_viewviewidem (filtre inverse)Requêtes qui coûteraient moins cher en flat-rate
cost_per_projectviewIS↔Logs, via compute_cost_per_hourCoût quotidien par projet, FinOps inter-projets
cost_by_labelviewIS↔Logs, via jobs_with_costCoût par label de job, chargeback équipe/environnement
most_expensive_usersviewIS↔Logs, via users_costs_incrementalUtilisateurs les plus coûteux
compute_cost_per_hour_view / _per_minute_viewviewIS↔Logs, via compute_cost_per_hour/_per_minuteVue enrichie du coût de calcul
bi_engine_materialized_view_analysisviewIS↔Logs, via jobs_with_costUsage du BI Engine et efficacité des vues matérialisées
most_expensive_modelsviewIS↔Logs, via models_costs_incrementalModèles dbt les plus coûteux à exécuter
most_repeated_modelstableidem (filtre query_count > 1)Modèles dbt les plus fréquemment exécutés
dbt_model_trendsviewIS↔Logs, via models_costs_incrementalTendances coût/perf par modèle dbt, détection de régression

Storage (models/monitoring/storage/)

Intermédiaires :

ModèleSource exacte
stg_partitions_monitoringIS.PARTITIONS + IS.TABLE_OPTIONS
table_reference_incrementalIS↔Logs, via jobs_with_cost

Datamarts :

ModèleMatér.Source exacteUse case
dataset_with_costtableIS.TABLE_STORAGE (direct, pas via storage_with_cost)Détails dataset + stockage + coût
dataset_with_potential_savingsviewIS, via storage_with_costÉconomies logique vs physique, par dataset
most_expensive_tablesviewIS, via storage_with_costTables les plus coûteuses en stockage
read_heavy_tablesviewIS, via storage_with_cost + table_reference_incrementalTables les plus lues, candidates partitionnement/clustering/BI Engine
write_only_tablesviewidemÉcrites récemment, jamais lues, candidates archivage
unused_tablestableidemJamais modifiées ni lues, candidates suppression
partitions_monitoringviewIS, via stg_partitions_monitoringSynthèse des partitions par table/dataset/projet
table_with_potential_savingsviewIS, via storage_with_costÉconomies logique vs physique, par table
storage_billing_per_hourincremental, enabled=enable_gcp_billing_export()BillingCoût horaire réel de stockage
write_ingestion_cost_per_tableviewIS.STREAMING_TIMELINE + IS.WRITE_API_TIMELINEVolume/coût d’ingestion (Streaming + Storage Write API)
write_ingestion_errors_analysisviewidemErreurs d’ingestion par table/code, debug pipeline

Global (models/monitoring/global/datamart/)

Vues transverses combinant compute + storage, pour dashboards exécutifs/FinOps.

ModèleMatér.Source exacteUse case
daily_spendincrementalBilling (compute_billing_per_hour + storage_billing_per_hour) si enable_gcp_billing_export, sinon repli IS↔Logs (compute_cost_per_hour_view, coût estimé, storage absent)Coût quotidien agrégé (compute + storage)
cost_trend_comparisonviewhérite de daily_spend (Billing + IS↔Logs)Anomalies, budget
project_cost_summaryviewIS↔Logs (compute_cost_per_hour) + IS (storage_with_cost)Coût compute + storage prévisionnel, par projet
recommendationsviewIS.RECOMMENDATIONSRecommandations actives Google (partitionnement, clustering, capacité, tables inactives)
dbt_bigquery_monitoring_optionstableaucune (lit les variables de config du package via macros)Configuration courante du package, audit de config

Notes liées