Périmètre
- Plateforme : dbt
- Périmètre : projet dbt canot_lab : adaptateur snowflake, dbt 1.12.6, manifeste du 2026-10-17
- Niveau de droits : 1 (inventaire, volumes, consommation)
- Mode SQL : aucun SQL émis (fichiers lus)
- Lectures : 2 faites 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 | iceberg, avec canot drill |
| Preuve | non faite par ce scan | P1 parité des données ; P2 rejeu des requêtes ; P3 rejeu du pipeline, avec canot drill dbt://PROJET DESTINATION (lecture seule, avec les identifiants du profil dbt) |
Connecteur dbt : testé ; test enregistré : 2026-10-19 : canot scan dbt://lab/dbt (projet dbt du banc d'essai, manifeste dbt 1.12.6, adaptateur Snowflake) ; canot drill dbt://lab/dbt --target snowflake sur le compte d'essai Snowflake : 8 relations copiées et identiques, 8 modèles rejoués (docs/scan.md) ; profils BigQuery et Databricks écrits, non testés.
Ce que Canot ne peut pas prouver ici : P1 couvre les sources, seeds, snapshots et modèles table ou incrémentaux trouvés dans l'entrepôt ; P3 couvre 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, les modèles incrémentaux et les modèles à reconstruire (F13) sont comptés, non prouvés.
Coûts observés
Non lu : fichiers de projet : ni crédits ni octets facturés ; le scan de la plateforme cible les mesure.
Mouvements
0 figée, 4 vivantes, 0 recréée, 4 non déterminées.
recréée : DDL de moins de 7 jours sans écriture ulté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 2026-10-17 |
| CANOT_LAB.DBT_dbt_mart.dbt_daily_revenue | TABLE | non lu | vivante | dernière écriture le 2026-10-17 |
| CANOT_LAB.DBT_dbt_mart.dbt_fct_orders | TABLE | non lu | vivante | dernière écriture le 2026-10-17 |
| CANOT_LAB.DBT_dbt_mart.int_order_totals | TABLE | non lu | vivante | dernière écriture le 2026-10-17 |
| 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 de 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'utilise qu'avec cet éditeur.
| Portabilité | Famille d'objet | Objets |
|---|---|---|
| portable tel quel | données | 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 | traduite et acceptée 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 à la plateforme) | 0 | non lu | non lu |
| C6 | variable | 0 | non lu | non lu |
| C7 | DDL, COPY, MERGE, requêtes de métadonnées : comptées à part | 0 | non lu | non lu |
| Élément | 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 : les fichiers dbt ne portent aucun 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 manifeste, sqlglot X, duckdb X.
accepté ≠ résultat identique. Traduit vers DuckDB, non comparé.
8 familles non testées.
Familles les plus exécutées (formes normalisées)
Aucun.
Fourchettes
Estimations de cadrage : chaque fourchette porte ses hypothèses. Un canot drill remplace le débit supposé par une mesure.
| Élément | 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é |
| 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 2026-10-17. |
F12 · Lecture incomplèteÀ examiner
1 constat
| Cible | Observé |
|---|---|
| lecture B03 | target/catalog.json non lu (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.
- Votre tarif contractuel : prix de votre contrat non lu.
- Stockage de destination, fonctionnement en parallèle des deux plateformes, exploitation après la sortie : dépendent de votre contrat et de votre architecture.
- Résultats identiques des requêtes traduites : accepté ≠ résultat identique ; traduites vers DuckDB, non comparées ; un canot drill compare les résultats.
- Projections de coût fournies par la plateforme : non utilisées, car elles ne peuvent pas être vérifiées depuis le scan.
Utiliser ce rapport pour vos travaux réglementaires (RGPD, DORA, NIS2, Data Act, SecNumCloud, ABE)
Ces éléments peuvent appuyer vos propres travaux sur le RGPD, DORA, NIS2, le Data Act, SecNumCloud ou les orientations de l'ABE sur l'externalisation. Ce sont des éléments de preuve, pas une conclusion : ce rapport n'est pas une certification, ce n'est pas un conseil juridique, et il ne dit pas si vos contrats ou votre organisation satisfont à une réglementation.
| Cadre | Ce qu'il demande, en bref | Ce que ce rapport vous apporte | Ce qu'il ne couvre pas |
|---|---|---|---|
| DORA (règlement (UE) 2022/2554) | Art. 28, § 8, et art. 30, § 3, point f) : une transition réaliste, avec une période adéquate. | Le débit mesuré et une fourchette de temps de reprise issus de l'exercice ; une fourchette de durée de copie (estimée) dans le scan. | Hors validation humaine et bascule de vos applications. |
| DORA (règlement (UE) 2022/2554) | Art. 28 : savoir ce qui dépend du prestataire TIC. | Ce qui ne se déplace pas tel quel : vues, routines, tâches, politiques, dépendances externes, avec les éléments à l'appui de chaque constat. | Un inventaire de la plateforme, pas de vos contrats ni des applications qui y sont connectées. |
| Data Act (règlement (UE) 2023/2854) | Art. 29 : les frais de changement sont supprimés à partir du 12 janvier 2027. | L'effort qui reste à votre charge : coût de lecture, durée de copie et estimations de reprise, chacun marqué mesuré, calculé ou estimé. | Ne dit rien des frais que votre prestataire peut encore appliquer avant cette date. Les prix sont des tarifs catalogue datés, pas votre contrat. |
| RGPD (règlement (UE) 2016/679) | Chapitre V (transferts) et art. 32 (sécurité du traitement). | L'endroit où la copie est hébergée, et les objets de sécurité qui ne la suivent pas (politiques de masquage et d'accès aux lignes, tags). | Le lieu d'hébergement est la destination que vous avez choisie. L'appréciation juridique d'un transfert vous revient. |
| RGPD (règlement (UE) 2016/679) | Art. 5, § 1, point c) : minimisation des données. | Le scan lit les métadonnées et l'historique d'exécution, pas le contenu des tables. Le texte SQL est masqué et les identités sont pseudonymisées. | Vaut pour le scan seulement : un exercice de sortie (drill) lit les données qu'il copie. |
| NIS2 (directive (UE) 2022/2555) | Art. 21, § 2, point d) : sécurité de la chaîne d'approvisionnement, y compris la relation avec chaque prestataire direct. | Ce qui vous lie à ce prestataire : dépendances externes et objets qui ne se déplacent pas tels quels, avec les éléments à l'appui de chaque constat. | N'évalue pas les mesures de sécurité du prestataire. |
| Orientations de l'ABE sur l'externalisation (EBA/GL/2019/02) | Stratégies de sortie : documentées, réalistes, suffisamment testées et réexaminées périodiquement, pour les externalisations visées par les orientations. | L'exercice de sortie (drill) et l'inventaire de ce qui ne se déplace pas (scan), comme éléments de test dans votre dossier de sortie. | Un exercice. Les prestataires alternatifs, le volet métier et le réexamen périodique vous reviennent. Vérifiez quel texte s'applique à vous en plus de DORA. |
Références arrêtées au 2026-10-19. Vérifiez les textes en vigueur : ils évoluent, et leur application dépend de votre situation.
Méthode
2 lectures faites sur 3. Chaque lecture est enregistrée avec son statut et son motif ; une valeur non lue reste vide, jamais 0.
| Id | Vue | Statut | Motif | 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 2026-10-17 au 2026-10-17 |
Droits utilisés
Niveau 1 : lecture des fichiers manifest.json, run_results.json et catalog.json du dossier target/. Jamais demandés : le scan n'ouvre aucune connexion à l'entrepôt et ne lance aucune commande dbt (ni parse, ni compile, ni run).
Coût du scan
| Élément | Valeur | Nature et base |
|---|---|---|
| Requêtes envoyées | 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 bucket.
- 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 ulté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 listé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 la source et la copie, et signe un dossier de preuve.
Pour aller plus loin, le diagnostic q4o, dès 22 000 € HT : votre tarif contractuel, l'exécution réelle, des scénarios, les étapes à suivre. canot.io