Périmètre
- Plateforme : dbt
- Périmètre : projet dbt canot_lab : adaptateur snowflake, dbt 1.12.6, manifest du 17/10/2026
- Niveau de droits : 1 (inventaire, volumes, consommation)
- Mode SQL : aucun SQL émis (fichiers lus)
- Lectures : 2 lues sur 3
- Contenu lu : 8 tables, 23 objets, 0 famille de requêtes
- Versions : canot X, duckdb X, sqlglot X
Capacités
Ce rapport est un inventaire : inventorié, ni exporté ni rejoué.
| Niveau | Ce rapport | Canot sur dbt |
|---|---|---|
| Inventaire | fait par ce scan (niveau 1) | complet, niveau 1 |
| Export | non fait par ce scan | aucun format déclaré |
| Preuve | non faite par ce scan | P3 rejeu de traitements, avec canot rejeu-dbt |
Connecteur dbt : testé ; test consigné : 19/10/2026 : canot scan dbt://lab/dbt (projet dbt du banc, manifest dbt 1.12.6, adaptateur Snowflake) ; canot rejeu-dbt sur ces artefacts et une copie DuckDB locale construite par les tests (docs/scan.md).
Ce que Canot ne peut pas prouver ici : P3 porte sur les modèles SQL que DuckDB rejoue et dont la table d'origine est dans la copie ; les vues sont rejouées sans comparaison, les modèles Python, incrémentaux, les snapshots et les modèles à reconstruire (F13) sont comptés, pas prouvés.
Coûts observés
Non lus : fichiers de projet : ni crédits ni octets facturés ; le scan de la plateforme cible les mesure.
Mouvements
0 figée(s), 4 vivante(s), 0 recréée(s), 4 non déterminée(s).
recréée : DDL de moins de 7 jours sans écriture postérieure ; vivante : écriture de moins de 30 jours ; figée : dernière écriture plus ancienne ; non déterminée : écritures non lues. Base : B02.
| Table | Type | Volume | Mouvement | Preuve |
|---|---|---|---|---|
| CANOT_LAB.DBT_dbt_mart.dbt_customer_ltv | TABLE | non lu | vivante | dernière écriture le 17/10/2026 |
| CANOT_LAB.DBT_dbt_mart.dbt_daily_revenue | TABLE | non lu | vivante | dernière écriture le 17/10/2026 |
| CANOT_LAB.DBT_dbt_mart.dbt_fct_orders | TABLE | non lu | vivante | dernière écriture le 17/10/2026 |
| CANOT_LAB.DBT_dbt_mart.int_order_totals | TABLE | non lu | vivante | dernière écriture le 17/10/2026 |
| CANOT_LAB.RAW.customers | TABLE | non lu | non déterminé | écritures non lues |
| CANOT_LAB.RAW.order_lines | TABLE | non lu | non déterminé | écritures non lues |
| CANOT_LAB.RAW.orders | TABLE | non lu | non déterminé | écritures non lues |
| CANOT_LAB.RAW.products | TABLE | non lu | non déterminé | écritures non lues |
Ce qui ne part pas avec la copie
Objets à reconstruire ou à décrire
| Type | Nombre | Exemples |
|---|---|---|
| DAG | 1 | dbt:canot_lab |
| modèle dbt | 8 | model.canot_lab.dbt_customer_ltv, model.canot_lab.dbt_daily_revenue, model.canot_lab.dbt_fct_orders, model.canot_lab.int_order_totals, model.canot_lab.stg_customers … |
| paquet dbt | 2 | paquet:dbt, paquet:dbt_snowflake |
| source dbt | 4 | source.canot_lab.raw.customers, source.canot_lab.raw.order_lines, source.canot_lab.raw.orders, source.canot_lab.raw.products |
| test dbt | 8 | test.canot_lab.not_null_dbt_customer_ltv_customer_id.187864d35c, test.canot_lab.not_null_dbt_fct_orders_order_id.42b5497576, test.canot_lab.not_null_stg_customers_customer_id.e2cfb1f9aa, test.canot_lab.not_null_stg_orders_order_id.81cfe2fe64, test.canot_lab.unique_dbt_customer_ltv_customer_id.d86203d0a3 … |
Colonnes à type propre à la plateforme (0)
Aucun.
Carte de sortie
Portabilité déclarée par la collecte pour chaque objet lu. « Exporté » n'est pas « portable » : une archive au format de l'éditeur ne s'exploite qu'avec lui.
| Portabilité | Famille d'objet | Objets |
|---|---|---|
| portable tel quel | donnees | 4 |
| traduisible (texte ouvert, rejeu possible) | planification | 1 |
| traduisible (texte ouvert, rejeu possible) | traitement | 16 |
Dépendances
Aucune dépendance externe observée dans les lectures faites.
Rejouabilité des requêtes
| Catégorie | Signification | Familles | Exécutions | Poids |
|---|---|---|---|---|
| C0 | traduit et accepté par DuckDB | 0 | non lu | non lu |
| C1 | non analysable | 0 | non lu | non lu |
| C2 | commande, non analysée | 0 | non lu | non lu |
| C3 | traduction impossible | 0 | non lu | non lu |
| C4 | erreur d'analyse DuckDB | 0 | non lu | non lu |
| C5 | erreur de liaison (objet ou fonction propre) | 0 | non lu | non lu |
| C6 | variable | 0 | non lu | non lu |
| C7 | DDL, COPY, MERGE, requêtes de métadonnées : comptés à part | 0 | non lu | non lu |
| Poste | Valeur | Nature et base |
|---|---|---|
| Taux C0, par familles | Non estimé : catalog.json non lu : EXPLAIN DuckDB non exécuté. | non estimé |
| Taux C0, par exécutions | Non estimé : sans objet : des fichiers dbt ne portent pas d'historique par requête. | non estimé |
| Taux C0, pondéré | Non lu : crédits et octets non lus (fichiers dbt). | non lu |
Base : 0/0 modèles testés, 8 non testé(s), SQL des modèles et snapshots du manifest, sqlglot X, duckdb X.
accepté ≠ résultat identique. Traduit vers DuckDB, non comparé.
8 familles non testée(s).
Familles les plus exécutées (formes normalisées)
Aucun.
Fourchettes
Estimations de planification : chaque fourchette porte ses hypothèses. Un canot drill remplace le débit supposé par la mesure.
| Poste | Valeur | Nature et base |
|---|---|---|
| Volume à copier | Non lu : catalog.json non lu. | non lu |
| Durée de lecture de la copie | Non estimé : volume non lu. | non estimé |
| Coût de lecture de la copie | Non estimé : dépend de la plateforme qui héberge les tables, non lue ici. | non estimé |
| Travail de reprise | 0,0 j
| estimé, confiance basse objets × jours par objet + colonnes × jours par colonne |
Constats
Chaque constat est étiqueté « À examiner », sans niveau de gravité. Il dit ce qui est observé et ce qui ne l'est pas.
F11 · Chaîne planifiée et ses échecsÀ examiner
1 constat
| Cible | Observé |
|---|---|
| objet dbt:canot_lab | DAG, planification non lue (orchestrateur hors des fichiers dbt), état dernière invocation : build ; 1 exécution, 0 échec, dernière le 17/10/2026. |
F12 · Lecture incomplèteÀ examiner
1 constat
| Cible | Observé |
|---|---|
| lecture B03 | target/catalog.json non lue (absent ou non exposé) ; limite : colonnes, types et volumes des relations ; rejouabilité non testée par EXPLAIN DuckDB. |
Aucun constat pour : F01, F02, F03, F04, F05, F06, F07, F08, F09, F10, F13, F14, F15, F16. Une absence de constat ne vaut que pour les lectures faites (voir F12 et la méthode).
Ce que ce rapport ne chiffre pas
- Consommation de la plateforme : non lue : fichiers de projet : ni crédits ni octets facturés ; le scan de la plateforme cible les mesure.
- Volume à copier : catalog.json non lu.
- Durée de lecture de la copie : volume non lu.
- Coût de lecture de la copie : dépend de la plateforme qui héberge les tables, non lue ici.
- Historique facturé : fichiers de projet : ni crédits ni octets facturés ; le scan de la plateforme cible les mesure.
- Tarif de votre contrat : prix de votre contrat non lu.
- Stockage d'arrivée, double exploitation, fonctionnement après la sortie : dépendent de votre contrat et de votre architecture.
- Résultat identique des requêtes traduites : accepté ≠ résultat identique : traduit vers DuckDB, non comparé ; un canot drill compare les résultats.
- Projections de coût fournies par la plateforme : non reprises : elles ne se vérifient pas depuis le scan.
Méthode
2 lectures lues sur 3. Chaque lecture est consignée avec son statut et sa raison ; une valeur non lue reste vide, jamais 0.
| Id | Vue | Statut | Raison | Lignes | Fenêtre | Latence |
|---|---|---|---|---|---|---|
| B03 | target/catalog.json | non lu | absent ou non exposé ; limite : colonnes, types et volumes des relations ; rejouabilité non testée par EXPLAIN DuckDB | non lu | ||
| B01 | target/manifest.json | lu | 583 | |||
| B02 | target/run_results.json | lu | 16 | du 17/10/2026 au 17/10/2026 |
Droits utilisés
Niveau 1 : lecture des fichiers manifest.json, run_results.json et catalog.json du dossier target/. Jamais demandés : aucune connexion à l'entrepôt, aucune commande dbt (ni parse, ni compile, ni run).
Coût du scan
| Poste | Valeur | Nature et base |
|---|---|---|
| Requêtes émises | 0 requête | mesuré |
| Durée de lecture | 0 s | mesuré |
Garde-fous
- Aucune connexion : Canot lit les fichiers JSON du projet, sans réseau ni commande ; aucune requête n'est envoyée.
- Utilisateurs et rôles des requêtes pseudonymisés par HMAC, avec un sel tiré pour ce scan et jamais écrit ; valeurs d'étiquettes hachées ; emplacements réduits au compartiment.
- Le texte SQL brut n'est jamais écrit : seules les formes normalisées, littéraux masqués, sortent de la collecte.
Règles
- Mouvement : recréée : DDL de moins de 7 jours sans écriture postérieure ; vivante : écriture de moins de 30 jours ; figée : dernière écriture plus ancienne ; non déterminée : écritures non lues.
- Stockage sans lecture : fenêtre réelle de la vue lue, comparée à 365 jours ; les angles morts de chaque vue sont cités dans le constat.
- Durée de copie : débit supposé de 20 à 80 Mo/s.
- Les prix catalogue sont datés et sourcés ; ils ne remplacent pas le prix de votre contrat.
Suite
Ce rapport décrit votre plateforme ; il ne recommande ni de partir ni de rester.
Pour mesurer une sortie sur un périmètre choisi : canot drill copie vers Apache Iceberg, compare source et copie, et signe un dossier de preuve.
Pour aller plus loin, le diagnostic q4o, dès 22 000 € HT : tarif de votre contrat, exécution réelle, scénarios, marche à suivre. canot.io