Périmètre
- Plateforme : Snowflake
- Périmètre : compte ab98765, base PROD
- Niveau de droits : 3 (+ droits et outils (pseudonymisés))
- Mode SQL : lecture seule
- Lectures : 5 lues sur 19
- Contenu lu : 3 tables, 3 objets, 6 familles 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 Snowflake |
|---|---|---|
| Inventaire | fait par ce scan (niveau 3) | complet, niveaux 1 à 3 |
| Export | non fait par ce scan | iceberg, avec canot drill |
| Preuve | non faite par ce scan | P1 parité des données ; P2 rejeu de requêtes, avec canot drill |
Connecteur Snowflake : testé ; test consigné : canot drill, 17/10/2026 : compte d'essai Snowflake, TPC-H SF10 (docs/banc-essai.md).
Ce que Canot ne peut pas prouver ici : les formes déclarées (P1, P2) portent sur les tables et les requêtes ; les objets à reconstruire hors tables sont comptés, pas prouvés.
Coûts observés
Fenêtre : 365 jours. Crédits mesurés ; en dollars, seulement avec le prix fourni ou une fourchette catalogue datée.
| Poste | Valeur | Nature et base |
|---|---|---|
| Crédits consommés | Non lu : METERING_DAILY_HISTORY non lue : droit absent. | non lu |
| En dollars | Non estimé : crédits non lus. | non estimé |
Stockage
| Poste | Valeur | Nature et base |
|---|---|---|
| Stockage moyen facturé | Non lu : STORAGE_USAGE non lue : droit absent. | non lu |
| Stockage en dollars | Non estimé : prix de votre contrat non lu. | non estimé |
Mouvements
0 figée(s), 0 vivante(s), 1 recréée(s), 2 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 : S01.
| Table | Type | Volume | Mouvement | Preuve |
|---|---|---|---|---|
| PROD.MART.KPI | TABLE | non lu | recréée | dernière DDL le 16/10/2026, écritures non lues |
| PROD.RAW.ARCHIVE_2019 | TABLE | non lu | non déterminé | écritures non lues |
| PROD.RAW.ORDERS | 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 |
|---|---|---|
| procédure | 1 | PROD.MART.SP_HIDDEN |
| tâche | 1 | PROD.OPS.T_NIGHTLY |
| vue | 1 | PROD.MART.V_REVENUE |
Routines par langage : NON LU 1.
Colonnes à type propre à la plateforme (1)
| Table | Colonne | Type |
|---|---|---|
| PROD.RAW.ORDERS | doc | VARIANT |
Historique facturé
| Poste | Valeur | Nature et base |
|---|---|---|
| Time Travel et Fail-safe (0 table) | Non lu : TABLE_STORAGE_METRICS non lue : droit absent. | non lu |
Dépendances
Outils vus dans les requêtes
| Outil | Familles | Exécutions |
|---|---|---|
| dbt | 1 | 40 |
| non identifié | 4 | 21 |
| tableau | 1 | 2 |
Rejouabilité des requêtes
| Catégorie | Signification | Familles | Exécutions | Poids |
|---|---|---|---|---|
| C0 | traduit et accepté par DuckDB | 0 | 0 | 0,00 crédits |
| C1 | non analysable | 0 | 0 | 0,00 crédits |
| C2 | commande, non analysée | 1 | 1 | 0,00 crédits |
| C3 | traduction impossible | 0 | 0 | 0,00 crédits |
| C4 | erreur d'analyse DuckDB | 1 | 5 | non lu |
| C5 | erreur de liaison (objet ou fonction propre) | 0 | 0 | 0,00 crédits |
| C6 | variable | 0 | 0 | 0,00 crédits |
| C7 | DDL, COPY, MERGE, requêtes de métadonnées : comptés à part | 1 | 3 | 0,20 crédits |
| Poste | Valeur | Nature et base |
|---|---|---|
| Taux C0, par familles | 0,0 % | calculé traduit et accepté par DuckDB (C0) / C0 à C6 ; C7 compté à part |
| Taux C0, par exécutions | 0,0 % | calculé traduit et accepté par DuckDB (C0) / C0 à C6 ; C7 compté à part |
| Taux C0, pondéré | Non estimé : aucune famille testable. | non estimé |
Base : 0/2 familles, fenêtre non lue, sqlglot X, duckdb X.
accepté ≠ résultat identique. Traduit vers DuckDB, non comparé.
3 familles non testée(s) ; 1 famille contenant un secret, comptée(s) puis écartée(s).
Fonctions propres à la plateforme
| Fonction | Familles |
|---|---|
| moteur:LAST_QUERY_ID | 1 |
| moteur:MY_UDF | 1 |
| moteur:RESULT_SCAN | 1 |
| stage | 1 |
| tablefromrows | 1 |
Familles les plus exécutées (formes normalisées)
| Catégorie | Exécutions | Outil | Forme normalisée |
|---|---|---|---|
| 40 | dbt | SELECT o.id, o.amount FROM CANOT_LAB.RAW.ORDERS AS o WHERE o.id > ? | |
| 12 | SELECT COUNT(*) FROM CANOT_LAB.RAW.ORDERS WHERE id = ? | ||
| C4 | 5 | SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) | |
| C7 | 3 | COPY INTO @CANOT_LAB.EXT.S3_PUBLIC/out/ FROM (SELECT * FROM CANOT_LAB.RAW.ORDERS) | |
| 2 | tableau | SELECT MY_UDF(id) FROM CANOT_LAB.RAW.ARCHIVE_1 | |
| C2 | 1 | EXECUTE |
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 : TABLE_STORAGE_METRICS non lue : droit absent. | non lu |
| Durée de lecture de la copie | Non estimé : volume non lu. | non estimé |
| Crédits de lecture de la copie | Non estimé : volume non lu. | non estimé |
| Coût de lecture de la copie | Non estimé : crédits non lus. | non estimé |
| Travail de reprise | 0,8 j à 5,0 j
| estimé, confiance basse · S02, S09, S10, S11 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 PROD.OPS.T_NIGHTLY | Tâche, planification USING CRON 0 1 * * * UTC, état started ; exécutions non lues. |
F12 · Lecture incomplèteÀ examiner
15 constats
| Cible | Observé |
|---|---|
| lecture S03 | TABLE_STORAGE_METRICS non lue (droit absent) ; limite : octets actifs et historique (F05, F06, F07, fourchettes). |
| lecture S04 | STORAGE_USAGE non lue (droit absent) ; limite : stockage moyen facturé. |
| lecture S05 | METERING_DAILY_HISTORY non lue (droit absent) ; limite : crédits par service. |
| lecture S06 | WAREHOUSE_METERING_HISTORY non lue (droit absent) ; limite : crédits par entrepôt. |
| lecture S07 | TABLE_DML_HISTORY non lue (droit absent) ; limite : dernières écritures (mouvement). |
| lecture S08 | TABLE_QUERY_PRUNING_HISTORY non lue (droit absent) ; limite : repli des lectures par table (F05). |
| lecture S12 | TASK_HISTORY non lue (délai dépassé) ; limite : exécutions et échecs des tâches (F11). |
| lecture S13 | QUERY_HISTORY non lue (niveau de droits non demandé) ; limite : familles de requêtes, rejouabilité, écritures observées (F03). |
| lecture S14 | ACCESS_HISTORY non lue (niveau de droits non demandé) ; limite : lectures par objet : F05 non calculé ; édition non déterminée (Standard ou droit absent). |
| lecture S15 | POLICY_REFERENCES non lue (niveau de droits non demandé) ; limite : politiques appliquées (F10). |
| lecture S16 | TAG_REFERENCES non lue (niveau de droits non demandé) ; limite : étiquettes (F10). |
| lecture S17 | GRANTS_TO_ROLES non lue (niveau de droits non demandé) ; limite : rôles propriétaires sans titulaire (F04). |
| lecture S18 | GRANTS_TO_USERS non lue (niveau de droits non demandé) ; limite : rôles propriétaires sans titulaire (F04). |
| lecture S19 | SHARES non lue (niveau de droits non demandé) ; limite : consommateurs externes (F09). |
| lecture code_des_routines | Code non lu pour 1 routine (filtré par droits ou non transmis) ; limite : SQL dynamique (F08). |
Aucun constat pour : F01, F02, F03, F04, F05, F06, F07, F08, F09, F10. Une absence de constat ne vaut que pour les lectures faites (voir F12 et la méthode).
Ce que ce rapport ne chiffre pas
- Stockage moyen facturé : STORAGE_USAGE non lue : droit absent.
- Coût du stockage : prix de votre contrat non lu.
- Crédits consommés : METERING_DAILY_HISTORY non lue : droit absent.
- Crédits en dollars : crédits non lus.
- Volume à copier : TABLE_STORAGE_METRICS non lue : droit absent.
- Durée de lecture de la copie : volume non lu.
- Crédits de lecture de la copie : volume non lu.
- Coût de lecture de la copie : crédits non lus.
- Historique facturé : TABLE_STORAGE_METRICS non lue : droit absent.
- 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
5 lectures lues sur 19. 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 |
|---|---|---|---|---|---|---|
| S03 | TABLE_STORAGE_METRICS | non lu | droit absent ; limite : octets actifs et historique (F05, F06, F07, fourchettes) | non lu | ||
| S04 | STORAGE_USAGE | non lu | droit absent ; limite : stockage moyen facturé | non lu | ||
| S05 | METERING_DAILY_HISTORY | non lu | droit absent ; limite : crédits par service | non lu | ||
| S06 | WAREHOUSE_METERING_HISTORY | non lu | droit absent ; limite : crédits par entrepôt | non lu | ||
| S07 | TABLE_DML_HISTORY | non lu | droit absent ; limite : dernières écritures (mouvement) | non lu | ||
| S08 | TABLE_QUERY_PRUNING_HISTORY | non lu | droit absent ; limite : repli des lectures par table (F05) | non lu | ||
| S12 | TASK_HISTORY | non lu | délai dépassé ; limite : exécutions et échecs des tâches (F11) | non lu | ||
| S13 | QUERY_HISTORY | non lu | niveau de droits non demandé ; limite : familles de requêtes, rejouabilité, écritures observées (F03) | non lu | ||
| S14 | ACCESS_HISTORY | non lu | niveau de droits non demandé ; limite : lectures par objet : F05 non calculé ; édition non déterminée (Standard ou droit absent) | non lu | ||
| S15 | POLICY_REFERENCES | non lu | niveau de droits non demandé ; limite : politiques appliquées (F10) | non lu | ||
| S16 | TAG_REFERENCES | non lu | niveau de droits non demandé ; limite : étiquettes (F10) | non lu | ||
| S17 | GRANTS_TO_ROLES | non lu | niveau de droits non demandé ; limite : rôles propriétaires sans titulaire (F04) | non lu | ||
| S18 | GRANTS_TO_USERS | non lu | niveau de droits non demandé ; limite : rôles propriétaires sans titulaire (F04) | non lu | ||
| S19 | SHARES | non lu | niveau de droits non demandé ; limite : consommateurs externes (F09) | non lu | ||
| S01 | TABLES | lu | 10 | 1,5 h | ||
| S02 | COLUMNS | lu | 10 | |||
| S09 | VIEWS | lu | 10 | |||
| S10 | PROCEDURES | lu | 10 | |||
| S11 | TASKS | lu | 10 |
Droits utilisés
Niveau 3 : SNOWFLAKE.OBJECT_VIEWER, SNOWFLAKE.USAGE_VIEWER, SNOWFLAKE.GOVERNANCE_VIEWER, SNOWFLAKE.SECURITY_VIEWER. Jamais demandés : IMPORTED PRIVILEGES, MANAGE GRANTS, IMPORT SHARE, USAGE sur les fonctions, READ sur les stages.
Coût du scan
| Poste | Valeur | Nature et base |
|---|---|---|
| Requêtes émises | 12 requêtes
| calculé · S01, S02, S03, S04, S05, S06 … lectures tentées, lues ou refusées par la plateforme |
| Durée de lecture | Non lu : durée non transmise par la collecte. | non lu |
Garde-fous
- Tout SQL envoyé passe par une garde lecture seule : seules les instructions SELECT, SHOW, DESCRIBE et ALTER SESSION SET partent. Aucune écriture, aucune activation d'API, aucune modification de paramètre.
- 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