canotExit scan · Scan de sortie

Diffusion interne

Scan de sortie : Snowflake

Constats au 2026-10-17 10:00 UTC · données en retard de 6 h au plus selon la vue · édition : enterprise · Canot 0.1.0

DSI

12 tables présentes (19,4 Go) et 20 objets à reconstruire en plus des tables. Mouvement : 3 figées, 7 vivantes, 1 recréée, 1 non déterminée. Rejouabilité : 2/3 familles acceptées par DuckDB ; accepté ≠ résultat identique.

DAF

Consommation mesurée sur 365 jours : 43,5 crédits. En dollars, fourchette au prix catalogue du 17/10/2026 : 113,10 $ à 226,20 $ ; prix de votre contrat non lu. Historique facturé qui ne part pas avec la copie : 6,3 Go sur 2 tables (F06, F07).

RSSI

5 tables ou politiques à reconstruire côté sécurité (F10) ; la copie exige un principal non filtré. 5 dépendances externes (F01, F02), 2 écritures hors de la plateforme (F03), 1 partage avec des consommateurs externes (F09). 1 rôle propriétaire sans titulaire (F04).

Périmètre

  • Plateforme : Snowflake
  • Périmètre : compte xy12345, base CANOT_LAB
  • Niveau de droits : 3 (+ droits et outils (pseudonymisés))
  • Mode SQL : lecture seule
  • Lectures : 33 faites sur 35
  • Contenu lu : 12 tables, 25 objets, 6 familles de requêtes
  • Versions : canot 0.1.0, duckdb 1.5.6, sqlglot 30.22.0

Capacités

Ce rapport est un inventaire : inventorié, ni exporté ni rejoué.

NiveauCe rapportCanot sur Snowflake
Inventairefait par ce scan (niveau 3)complet, niveaux 1 à 3
Exportnon fait par ce scaniceberg, avec canot drill
Preuvenon faite par ce scanP1 parité des données ; P2 rejeu des requêtes, avec canot drill

Connecteur Snowflake : testé ; test enregistré : canot drill, 2026-10-17 : 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) couvrent les tables et les requêtes ; les objets à reconstruire hors tables sont comptés, non prouvés.

Coûts observés

Fenêtre : 365 jours. Crédits mesurés ; en dollars, seulement avec le prix fourni ou une fourchette de prix catalogue datée.

ÉlémentValeurNature et base
Crédits consommés43,50 créditscalculé · S05
somme des crédits par service sur 365 jours
En dollars113,10 $ à 226,20 $
  • prix catalogue Snowflake au 17/10/2026, AWS Paris/Francfort : 2,60 $ (édition Standard) à 5,20 $ (édition la plus haute), https://www.snowflake.com/pricing/pricing-guide/
  • prix de votre contrat non lu ; votre région peut différer
estimé, confiance basse · S05
crédits × prix catalogue du crédit, du plus bas au plus haut

Par service

ServiceCrédits
WAREHOUSE_METERING41,50 crédits
SERVERLESS_TASK1,20 crédit
AUTO_CLUSTERING0,80 crédit

Par entrepôt

EntrepôtCrédits
CANOT_WH40,00 crédits
COMPUTE_WH1,50 crédit

Stockage

ÉlémentValeurNature et base
Stockage facturé moyen24 Gomesuré · S04
Stockage en dollarsNon estimé : prix de votre contrat non lu.non estimé

Mouvements

3 figées, 7 vivantes, 1 recréée, 1 non déterminée.

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 : S01, S08, S25.

TableTypeVolumeMouvementPreuve
CANOT_LAB.RAW.ARCHIVE_1TABLE5 Gofigéedernière écriture le 2025-01-10
CANOT_LAB.RAW.ARCHIVE_2TABLE5 Gofigéedernière écriture le 2025-01-10
CANOT_LAB.RAW.ARCHIVE_3TABLE5 Gofigéedernière écriture le 2025-01-10
CANOT_LAB.RAW.ORDERSTABLE2 Govivantedernière écriture le 2026-10-16
CANOT_LAB.MART.FCT_ORDERSTABLE1,5 Gorecrééedernier DDL le 2026-10-17, aucune écriture ultérieure
CANOT_LAB.RAW.CUSTOMERSTABLE800 Movivantedernière écriture le 2026-10-15
CANOT_LAB.RAW.ORDERS_CLONECLONE100 Movivantedernière écriture le 2026-10-15
CANOT_LAB.MART.DIM_LEGACYTABLE10 Monon déterminéécritures non lues
CANOT_LAB.OPS.EVENTS_LOGTABLE10 Movivantedernière écriture le 2026-10-17
CANOT_LAB.SANDBOX.OLD_EXPORT_2023TABLE10 Movivantedernière écriture le 2026-10-15
CANOT_LAB.SANDBOX.TEAM_WORKTABLE10 Movivantedernière écriture le 2026-10-15
CANOT_LAB.EXT.US_STATESEXTERNEnon luvivantedernière écriture le 2026-10-15

Ce qui ne part pas avec la copie

Objets à reconstruire ou à décrire

TypeNombreExemples
base importée2SNOWFLAKE, SNOWFLAKE_SAMPLE_DATA
étiquette (tag)1CANOT_LAB.OPS.PII
flux (stream)1CANOT_LAB.OPS.ORDERS_STREAM
fonction3CANOT_LAB.MART.CLEAN_NAME, CANOT_LAB.MART.FX_TO_CENTS, CANOT_LAB.MART.SLUG
partage2S_CLIENTS, S_PARTNER
pipe1CANOT_LAB.OPS.P_EVENTS
politique d'accès aux lignes1CANOT_LAB.OPS.RAP_COUNTRY
politique de masquage1CANOT_LAB.OPS.MP_EMAIL
procédure3CANOT_LAB.MART.SP_DYNAMIC_JS, CANOT_LAB.MART.SP_DYNAMIC_PY, CANOT_LAB.MART.SP_REFRESH_MART
stage2CANOT_LAB.EXT.S3_PUBLIC, CANOT_LAB.RAW.INT_STAGE
table dynamique1CANOT_LAB.MART.DT_COUNTRY_REVENUE
tâche4CANOT_LAB.OPS.T_DAILY, CANOT_LAB.OPS.T_EXPORT_NIGHTLY, CANOT_LAB.OPS.T_REFRESH, CANOT_LAB.OPS.T_SERVERLESS
vue3CANOT_LAB.MART.V_KPI, CANOT_LAB.STAGING.STG_ORDERS, CANOT_LAB.STG.V_STATES

Routines par langage : JAVASCRIPT 2, PYTHON 2, SQL 2.

Colonnes de type propre à la plateforme (2)

TableColonneType
CANOT_LAB.RAW.CUSTOMERSprofileVARIANT
CANOT_LAB.RAW.CUSTOMERSgeoGEOGRAPHY

Historique facturé

ÉlémentValeurNature et base
Time Travel et Fail-safe (2 tables)6,3 Gocalculé · S03
Time Travel + Fail-safe des tables présentes, + octets encore facturés des tables supprimées

Dépendances

Dépendances externes (F01)

ObjetTypeEmplacement
CANOT_LAB.EXT.S3_PUBLICstages3://canot-lab-public
SNOWFLAKE_SAMPLE_DATAbase importéenon lu
CANOT_LAB.EXT.US_STATEStables3://canot-lab-public

Dépendances externes cachées (F02)

ObjetCheminEmplacement
CANOT_LAB.MART.V_KPICANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATESs3://canot-lab-public
CANOT_LAB.STG.V_STATESCANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATESs3://canot-lab-public

Écritures hors de la plateforme (F03)

SourceModeDestination
famille ddddddddddddobservés3://canot-lab-export
objet CANOT_LAB.OPS.T_EXPORT_NIGHTLYdéclarés3://canot-lab-export

Consommateurs externes (F09)

PartageComptes
S_CLIENTS2

Outils vus dans les requêtes

OutilFamillesExécutions
looker1340
dbt-snowflake172
airflow260
notebook125
bi-sim112

Clients connectés (sessions)

ClientSessions
dbt-snowflake2 190
looker310

Rejouabilité des requêtes

CatégorieSignificationFamillesExécutionsPoids
C0traduite et acceptée par DuckDB23521,80 crédit
C1non analysable000,00 crédit
C2commande, non analysée000,00 crédit
C3traduction impossible000,00 crédit
C4erreur d'analyse DuckDB1250,30 crédit
C5erreur de liaison (objet ou fonction propre à la plateforme)000,00 crédit
C6variable000,00 crédit
C7DDL, COPY, MERGE, requêtes de métadonnées : comptées à part31324,20 crédits
ÉlémentValeurNature et base
Taux C0, par familles66,7 %calculé · S24
C0 ÷ C0 à C6, en familles ; C7 compté à part
Taux C0, par exécutions93,4 %calculé · S24
C0 ÷ C0 à C6, en exécutions ; C7 compté à part
Taux C0, pondéré85,7 %calculé · S24
C0 ÷ C0 à C6, en crédits ; C7 compté à part

Base : 6/6 familles, du 2025-10-18 au 2026-10-17, sqlglot 30.22.0, duckdb 1.5.6.

accepté ≠ résultat identique. Traduit vers DuckDB, non comparé.

Familles les plus exécutées (formes normalisées)

CatégorieExécutionsOutilForme normalisée
C0340lookerSELECT country, SUM(total) FROM MART.FCT_ORDERS WHERE order_date >= ? GROUP BY country
C772dbt-snowflakeMERGE INTO DBT.FCT USING (SELECT * FROM RAW.ORDERS WHERE x = ?) AS s ON ? WHEN MATCHED THEN UPDATE SET y = ?
C730airflowCOPY INTO @EXT.S3_PUBLIC FROM (SELECT * FROM OPS.EVENTS_LOG)
C730airflowCOPY INTO @RAW.INT_STAGE FROM (SELECT * FROM OPS.EVENTS_LOG)
C425notebookSELECT f.value:k::STRING FROM RAW.EVENTS, LATERAL FLATTEN(input => props) AS f
C012bi-simSELECT * FROM RAW.CUSTOMERS WHERE email = ?

Fourchettes

Estimations de cadrage : chaque fourchette porte ses hypothèses. Un canot drill remplace le débit supposé par une mesure.

ÉlémentValeurNature et base
Volume à copier19,4 Go
  • octets actifs des tables présentes, hors tables externes et temporaires
  • volume stocké compressé ; le volume lu par la copie peut être plus élevé
  • clones : seuls leurs propres octets sont comptés
calculé · S03
somme des octets actifs
Durée de lecture de la copie4 min à 16 min
  • débit supposé de 20 à 80 Mo/s, remplacé par la mesure d'un canot drill
estimé, confiance basse · S03
volume ÷ débit supposé
Crédits de lecture de la copie0,07 crédit à 0,27 crédit
  • débit supposé de 20 à 80 Mo/s, remplacé par la mesure d'un canot drill
  • entrepôt XS, 1 crédit par heure
estimé, confiance basse · S03
durée × crédits par heure
Coût de lecture de la copie0,18 $ à 1,40 $
  • prix catalogue Snowflake au 17/10/2026, AWS Paris/Francfort : 2,60 $ (édition Standard) à 5,20 $ (édition la plus haute), https://www.snowflake.com/pricing/pricing-guide/
  • prix de votre contrat non lu ; votre région peut différer
estimé, confiance basse · S03
crédits × prix catalogue du crédit, du plus bas au plus haut
Reprise5,2 j à 31,0 j
  • 20 objets à reconstruire et 2 colonnes de type propre à la plateforme
  • hypothèses q4o : 0,25 à 1,5 jour par objet, 0,1 à 0,5 par colonne, à discuter
estimé, confiance basse · S02, S11, S12, S13, S14, S17
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.

F01 · Dépendance externeÀ examiner

3 constats

CibleObservé
objet CANOT_LAB.EXT.S3_PUBLICStage externe (s3://canot-lab-public).
objet SNOWFLAKE_SAMPLE_DATABase importée depuis un partage entrant.
table CANOT_LAB.EXT.US_STATESTable externe : données hors de la plateforme (s3://canot-lab-public).

F02 · Dépendance externe cachéeÀ examiner

2 constats

CibleObservé
objet CANOT_LAB.MART.V_KPIDépend de CANOT_LAB.EXT.US_STATES, hors de la plateforme, à travers 2 niveaux : CANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public).
objet CANOT_LAB.STG.V_STATESDépend de CANOT_LAB.EXT.US_STATES, hors de la plateforme, à travers 1 niveau : CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public).

F03 · Écriture hors de la plateformeÀ examiner

2 constats

CibleObservé
famille ddddddddddddÉcriture hors de la plateforme observée : 30 exécutions (airflow) ; destination : s3://canot-lab-export.
objet CANOT_LAB.OPS.T_EXPORT_NIGHTLYTâche qui écrit hors de la plateforme (écriture déclarée dans sa définition) ; destination : s3://canot-lab-export.

F04 · Rôle propriétaire sans titulaireÀ examiner

1 constat

CibleObservé
rôle LAB_ORPHANLe rôle LAB_ORPHAN possède 1 objet et n'est attribué à aucun utilisateur, ni directement ni par un autre rôle.

F05 · Stockage sans lecture observéeÀ examiner

3 constats

CibleObservé
table CANOT_LAB.RAW.ARCHIVE_15 Go stockés. Aucune lecture observée dans ACCESS_HISTORY du 2025-10-18 au 2026-10-17 ; angles morts : consommateurs des partages, RESULT_SCAN. Partagée avec 2 consommateurs externes : leurs lectures ne sont pas vues.
table CANOT_LAB.RAW.ARCHIVE_25 Go stockés. Aucune lecture observée dans ACCESS_HISTORY du 2025-10-18 au 2026-10-17 ; angles morts : consommateurs des partages, RESULT_SCAN.
table CANOT_LAB.RAW.ARCHIVE_35 Go stockés. Aucune lecture observée dans ACCESS_HISTORY du 2025-10-18 au 2026-10-17 ; angles morts : consommateurs des partages, RESULT_SCAN.

F06 · Historique facturé qui ne se transfère pasÀ examiner

1 constat

CibleObservé
table CANOT_LAB.RAW.ORDERS6 Go d'historique facturé (Time Travel et Fail-safe), rétention 30 jours, pour 2 Go actifs ; cet historique ne part pas avec la copie.

F07 · Table supprimée encore facturéeÀ examiner

1 constat

CibleObservé
table CANOT_LAB.RAW.TMP_DROPPEDSupprimée le 2026-10-10 ; 300 Mo encore facturés (Time Travel et Fail-safe).

F08 · SQL dynamiqueÀ examiner

2 constats

CibleObservé
objet CANOT_LAB.MART.SP_DYNAMIC_JSProcédure (JAVASCRIPT) : construit du SQL à l'exécution ; les objets touchés ne peuvent pas être lus dans le code.
objet CANOT_LAB.MART.SP_DYNAMIC_PYProcédure (PYTHON) : construit du SQL à l'exécution ; les objets touchés ne peuvent pas être lus dans le code.

F09 · Consommateurs externesÀ examiner

1 constat

CibleObservé
objet S_CLIENTSPartage vers 2 comptes cibles ; 2 objets partagés. Les lectures des consommateurs ne sont pas vues par ce scan.

F10 · Sécurité à reconstruireÀ examiner

5 constats

CibleObservé
objet CANOT_LAB.OPS.MP_EMAILPolitique de masquage appliquée à 1 objet ; elle ne part pas avec la copie ; la copie exige un principal non filtré.
objet CANOT_LAB.OPS.PIIÉtiquette (tag) appliquée à 1 objet ; elle ne part pas avec la copie.
objet CANOT_LAB.OPS.RAP_COUNTRYPolitique d'accès aux lignes appliquée à 1 objet ; elle ne part pas avec la copie ; la copie exige un principal non filtré.
table CANOT_LAB.MART.FCT_ORDERSPolitiques : OPS.RAP_COUNTRY. Elles ne partent pas avec la copie ; la copie exige un principal non filtré par ces politiques.
table CANOT_LAB.RAW.CUSTOMERSPolitiques : OPS.MP_EMAIL ; 1 étiquette. Elles ne partent pas avec la copie ; la copie exige un principal non filtré par ces politiques.

F11 · Chaîne planifiée et ses échecsÀ examiner

7 constats

CibleObservé
objet CANOT_LAB.MART.DT_COUNTRY_REVENUETable dynamique, planification 1 day ; exécutions non lues.
objet CANOT_LAB.OPS.ORDERS_STREAMFlux (stream) ; sur CANOT_LAB.RAW.ORDERS.
objet CANOT_LAB.OPS.P_EVENTSPipe, état RUNNING ; exécutions non lues.
objet CANOT_LAB.OPS.T_DAILYTâche, planification USING CRON 0 3 * * * Europe/Paris, état started ; 365 exécutions, 2 échecs, dernière le 2026-10-17.
objet CANOT_LAB.OPS.T_EXPORT_NIGHTLYTâche, planification USING CRON 0 2 * * * UTC, état started ; 30 exécutions, 30 échecs, dernière le 2026-10-17.
objet CANOT_LAB.OPS.T_REFRESHTâche, état started ; 365 exécutions, 0 échec, dernière le 2026-10-17 ; chaîne : CANOT_LAB.OPS.T_DAILY → CANOT_LAB.OPS.T_REFRESH.
objet CANOT_LAB.OPS.T_SERVERLESSTâche, planification 60 MINUTE, état suspended ; 0 exécution, 0 échec.

F12 · Lecture incomplèteÀ examiner

3 constats

CibleObservé
lecture S33STREAMS non lu (droit absent) ; limite : flux (F11).
lecture S34TASK_VERSIONS non lu (droit absent) ; limite : versions des tâches (F11).
lecture lectures_par_tableLectures non déterminées pour 1 table ; limite : stockage sans lecture observée (F05).

Ce que ce rapport ne chiffre pas

  • Coût du stockage : prix de votre contrat non lu.
  • 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.

CadreCe qu'il demande, en brefCe que ce rapport vous apporteCe 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

33 lectures faites sur 35. Chaque lecture est enregistrée avec son statut et son motif ; une valeur non lue reste vide, jamais 0.

IdVueStatutMotifLignesFenêtreLatence
S33STREAMSnon ludroit absent ; limite : flux (F11)non lu
S34TASK_VERSIONSnon ludroit absent ; limite : versions des tâches (F11)non lu
S01TABLESlu101,5 h
S02COLUMNSlu10
S03TABLE_STORAGE_METRICSlu102 h
S04STORAGE_USAGElu10du 2025-10-18 au 2026-10-17
S05METERING_DAILY_HISTORYlu10du 2025-10-18 au 2026-10-173 h
S06WAREHOUSE_METERING_HISTORYlu10du 2025-10-18 au 2026-10-173 h
S07QUERY_ATTRIBUTION_HISTORYlu10
S08TABLE_DML_HISTORYlu10du 2025-10-18 au 2026-10-176 h
S09TABLE_QUERY_PRUNING_HISTORYlu10du 2025-10-18 au 2026-10-174 h
S10OBJECT_DEPENDENCIESlu10
S11VIEWSlu10
S12FUNCTIONSlu10
S13PROCEDURESlu10
S14TASKSlu10
S15TASK_HISTORYlu10du 2025-10-18 au 2026-10-17
S16SERVERLESS_TASK_HISTORYlu10
S17PIPESlu10
S18COPY_HISTORYlu10

… et 15 de plus dans reads.csv.

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

ÉlémentValeurNature et base
Requêtes envoyées35 requêtesmesuré
Durée de lecture412 smesuré

Garde-fous

  • Chaque instruction SQL envoyée passe par une garde lecture seule : seules les instructions SELECT, SHOW, DESCRIBE et ALTER SESSION SET sortent. Aucune écriture, aucune activation d'API, aucun changement 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 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

Internal distribution

Exit scan: Snowflake

Findings as of 2026-10-17 10:00 UTC · data up to 6 h behind depending on the view · edition: enterprise · Canot 0.1.0

CIO

12 present tables (19.4 GB) and 20 objects to rebuild besides tables. Movement: 3 frozen, 7 live, 1 recreated, 1 not determined. Replayability: 2/3 families accepted by DuckDB; accepted ≠ identical result.

CFO

Consumption measured over 365 days: 43.5 credits. In dollars, list-price range as of 17/10/2026: $113.10 to $226.20; your contract price not read. Billed history that does not leave with the copy: 6.3 GB across 2 tables (F06, F07).

CISO

5 tables or policies to rebuild on the security side (F10); the copy requires an unfiltered principal. 5 external dependencies (F01, F02), 2 writes outside the platform (F03), 1 share with external consumers (F09). 1 owner role with no holder (F04).

Scope

  • Platform: Snowflake
  • Scope: account xy12345, database CANOT_LAB
  • Privilege level: 3 (+ privileges and tools (pseudonymized))
  • SQL mode: read-only
  • Reads: 33 done out of 35
  • Content read: 12 tables, 25 objects, 6 query families
  • Versions: canot 0.1.0, duckdb 1.5.6, sqlglot 30.22.0

Capabilities

This report is an inventory: inventoried, neither exported nor replayed.

LevelThis reportCanot on Snowflake
Inventorydone by this scan (level 3)full, levels 1 to 3
Exportnot done by this scaniceberg, with canot drill
Evidencenot done by this scanP1 data parity; P2 query replay, with canot drill

Snowflake connector: tested; recorded test: canot drill, 2026-10-17: Snowflake trial account, TPC-H SF10 (docs/banc-essai.md).

What Canot cannot prove here: the declared forms (P1, P2) cover tables and queries; objects to rebuild besides tables are counted, not proven.

Observed costs

Window: 365 days. Credits measured; in dollars, only with the price provided or a dated list-price range.

ItemValueNature and basis
Credits consumed43.50 creditscomputed · S05
sum of credits per service over 365 days
In dollars$113.10 to $226.20
  • Snowflake list price as of 17/10/2026, AWS Paris/Frankfurt: $2.60 (Standard edition) to $5.20 (highest edition), https://www.snowflake.com/pricing/pricing-guide/
  • your contract price not read; your region may differ
estimated, low confidence · S05
credits × list price of the credit, from lowest to highest

Per service

ServiceCredits
WAREHOUSE_METERING41.50 credits
SERVERLESS_TASK1.20 credits
AUTO_CLUSTERING0.80 credits

Per warehouse

WarehouseCredits
CANOT_WH40.00 credits
COMPUTE_WH1.50 credits

Storage

ItemValueNature and basis
Average billed storage24 GBmeasured · S04
Storage in dollarsNot estimated: your contract price not read.not estimated

Movements

3 frozen, 7 live, 1 recreated, 1 not determined.

recreated: DDL less than 7 days old with no later write; live: write less than 30 days old; frozen: older last write; not determined: writes not read. Based on: S01, S08, S25.

TableTypeVolumeMovementEvidence
CANOT_LAB.RAW.ARCHIVE_1TABLE5 GBfrozenlast write on 2025-01-10
CANOT_LAB.RAW.ARCHIVE_2TABLE5 GBfrozenlast write on 2025-01-10
CANOT_LAB.RAW.ARCHIVE_3TABLE5 GBfrozenlast write on 2025-01-10
CANOT_LAB.RAW.ORDERSTABLE2 GBlivelast write on 2026-10-16
CANOT_LAB.MART.FCT_ORDERSTABLE1.5 GBrecreatedlast DDL on 2026-10-17, no later write
CANOT_LAB.RAW.CUSTOMERSTABLE800 MBlivelast write on 2026-10-15
CANOT_LAB.RAW.ORDERS_CLONECLONE100 MBlivelast write on 2026-10-15
CANOT_LAB.MART.DIM_LEGACYTABLE10 MBnot determinedwrites not read
CANOT_LAB.OPS.EVENTS_LOGTABLE10 MBlivelast write on 2026-10-17
CANOT_LAB.SANDBOX.OLD_EXPORT_2023TABLE10 MBlivelast write on 2026-10-15
CANOT_LAB.SANDBOX.TEAM_WORKTABLE10 MBlivelast write on 2026-10-15
CANOT_LAB.EXT.US_STATESEXTERNALnot readlivelast write on 2026-10-15

What does not leave with the copy

Objects to rebuild or describe

TypeCountExamples
imported database2SNOWFLAKE, SNOWFLAKE_SAMPLE_DATA
tag1CANOT_LAB.OPS.PII
stream1CANOT_LAB.OPS.ORDERS_STREAM
function3CANOT_LAB.MART.CLEAN_NAME, CANOT_LAB.MART.FX_TO_CENTS, CANOT_LAB.MART.SLUG
share2S_CLIENTS, S_PARTNER
pipe1CANOT_LAB.OPS.P_EVENTS
row access policy1CANOT_LAB.OPS.RAP_COUNTRY
masking policy1CANOT_LAB.OPS.MP_EMAIL
procedure3CANOT_LAB.MART.SP_DYNAMIC_JS, CANOT_LAB.MART.SP_DYNAMIC_PY, CANOT_LAB.MART.SP_REFRESH_MART
stage2CANOT_LAB.EXT.S3_PUBLIC, CANOT_LAB.RAW.INT_STAGE
dynamic table1CANOT_LAB.MART.DT_COUNTRY_REVENUE
task4CANOT_LAB.OPS.T_DAILY, CANOT_LAB.OPS.T_EXPORT_NIGHTLY, CANOT_LAB.OPS.T_REFRESH, CANOT_LAB.OPS.T_SERVERLESS
view3CANOT_LAB.MART.V_KPI, CANOT_LAB.STAGING.STG_ORDERS, CANOT_LAB.STG.V_STATES

Routines per language: JAVASCRIPT 2, PYTHON 2, SQL 2.

Columns with a platform-specific type (2)

TableColumnType
CANOT_LAB.RAW.CUSTOMERSprofileVARIANT
CANOT_LAB.RAW.CUSTOMERSgeoGEOGRAPHY

Billed history

ItemValueNature and basis
Time Travel and Fail-safe (2 tables)6.3 GBcomputed · S03
Time Travel + Fail-safe of present tables, + bytes still billed for dropped tables

Dependencies

External dependencies (F01)

ObjectTypeLocation
CANOT_LAB.EXT.S3_PUBLICstages3://canot-lab-public
SNOWFLAKE_SAMPLE_DATAimported databasenot read
CANOT_LAB.EXT.US_STATEStables3://canot-lab-public

Hidden external dependencies (F02)

ObjectPathLocation
CANOT_LAB.MART.V_KPICANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATESs3://canot-lab-public
CANOT_LAB.STG.V_STATESCANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATESs3://canot-lab-public

Writes outside the platform (F03)

SourceModeDestination
family ddddddddddddobserveds3://canot-lab-export
object CANOT_LAB.OPS.T_EXPORT_NIGHTLYdeclareds3://canot-lab-export

External consumers (F09)

ShareAccounts
S_CLIENTS2

Tools seen in queries

ToolFamiliesExecutions
looker1340
dbt-snowflake172
airflow260
notebook125
bi-sim112

Connected clients (sessions)

ClientSessions
dbt-snowflake2,190
looker310

Query replayability

CategoryMeaningFamiliesExecutionsWeight
C0translated and accepted by DuckDB23521.80 credits
C1not parseable000.00 credits
C2command, not analyzed000.00 credits
C3translation impossible000.00 credits
C4DuckDB parse error1250.30 credits
C5binding error (platform-specific object or function)000.00 credits
C6variable000.00 credits
C7DDL, COPY, MERGE, metadata queries: counted separately31324.20 credits
ItemValueNature and basis
C0 rate, by families66.7%computed · S24
C0 ÷ C0 to C6, in families; C7 counted separately
C0 rate, by executions93.4%computed · S24
C0 ÷ C0 to C6, in executions; C7 counted separately
C0 rate, weighted85.7%computed · S24
C0 ÷ C0 to C6, in credits; C7 counted separately

Based on: 6/6 families, from 2025-10-18 to 2026-10-17, sqlglot 30.22.0, duckdb 1.5.6.

accepted ≠ identical result. Translated to DuckDB, not compared.

Most executed families (normalized forms)

CategoryExecutionsToolNormalized form
C0340lookerSELECT country, SUM(total) FROM MART.FCT_ORDERS WHERE order_date >= ? GROUP BY country
C772dbt-snowflakeMERGE INTO DBT.FCT USING (SELECT * FROM RAW.ORDERS WHERE x = ?) AS s ON ? WHEN MATCHED THEN UPDATE SET y = ?
C730airflowCOPY INTO @EXT.S3_PUBLIC FROM (SELECT * FROM OPS.EVENTS_LOG)
C730airflowCOPY INTO @RAW.INT_STAGE FROM (SELECT * FROM OPS.EVENTS_LOG)
C425notebookSELECT f.value:k::STRING FROM RAW.EVENTS, LATERAL FLATTEN(input => props) AS f
C012bi-simSELECT * FROM RAW.CUSTOMERS WHERE email = ?

Ranges

Planning estimates: each range carries its assumptions. A canot drill replaces the assumed throughput with a measurement.

ItemValueNature and basis
Volume to copy19.4 GB
  • active bytes of present tables, excluding external and temporary tables
  • compressed stored volume; the volume read by the copy may be higher
  • clones: only their own bytes are counted
computed · S03
sum of active bytes
Copy read time4 min to 16 min
  • assumed throughput of 20 to 80 MB/s, replaced by the measurement of a canot drill
estimated, low confidence · S03
volume ÷ assumed throughput
Copy read credits0.07 credits to 0.27 credits
  • assumed throughput of 20 to 80 MB/s, replaced by the measurement of a canot drill
  • XS warehouse, 1 credit per hour
estimated, low confidence · S03
time × credits per hour
Copy read cost$0.18 to $1.40
  • Snowflake list price as of 17/10/2026, AWS Paris/Frankfurt: $2.60 (Standard edition) to $5.20 (highest edition), https://www.snowflake.com/pricing/pricing-guide/
  • your contract price not read; your region may differ
estimated, low confidence · S03
credits × list price of the credit, from lowest to highest
Rework5.2 d to 31.0 d
  • 20 objects to rebuild and 2 columns with a platform-specific type
  • q4o assumptions: 0.25 to 1.5 day per object, 0.1 to 0.5 per column, open to discussion
estimated, low confidence · S02, S11, S12, S13, S14, S17
objects × days per object + columns × days per column

Findings

Each finding is labeled "To review", with no severity level. It states what is observed and what is not.

F01 · External dependencyTo review

3 findings

TargetObserved
object CANOT_LAB.EXT.S3_PUBLICExternal stage (s3://canot-lab-public).
object SNOWFLAKE_SAMPLE_DATADatabase imported from an inbound share.
table CANOT_LAB.EXT.US_STATESExternal table: data outside the platform (s3://canot-lab-public).

F02 · Hidden external dependencyTo review

2 findings

TargetObserved
object CANOT_LAB.MART.V_KPIDepends on CANOT_LAB.EXT.US_STATES, outside the platform, through 2 levels: CANOT_LAB.MART.V_KPI → CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public).
object CANOT_LAB.STG.V_STATESDepends on CANOT_LAB.EXT.US_STATES, outside the platform, through 1 level: CANOT_LAB.STG.V_STATES → CANOT_LAB.EXT.US_STATES (s3://canot-lab-public).

F03 · Write outside the platformTo review

2 findings

TargetObserved
family ddddddddddddWrite outside the platform observed: 30 executions (airflow); destination: s3://canot-lab-export.
object CANOT_LAB.OPS.T_EXPORT_NIGHTLYTask that writes outside the platform (declared in its definition); destination: s3://canot-lab-export.

F04 · Owner role with no holderTo review

1 finding

TargetObserved
role LAB_ORPHANRole LAB_ORPHAN owns 1 object and is granted to no user, neither directly nor through another role.

F05 · Storage with no observed readTo review

3 findings

TargetObserved
table CANOT_LAB.RAW.ARCHIVE_15 GB stored. No read observed in ACCESS_HISTORY from 2025-10-18 to 2026-10-17; blind spots: share consumers, RESULT_SCAN. Shared with 2 external consumers: their reads are not seen.
table CANOT_LAB.RAW.ARCHIVE_25 GB stored. No read observed in ACCESS_HISTORY from 2025-10-18 to 2026-10-17; blind spots: share consumers, RESULT_SCAN.
table CANOT_LAB.RAW.ARCHIVE_35 GB stored. No read observed in ACCESS_HISTORY from 2025-10-18 to 2026-10-17; blind spots: share consumers, RESULT_SCAN.

F06 · Billed history that does not transferTo review

1 finding

TargetObserved
table CANOT_LAB.RAW.ORDERS6 GB of billed history (Time Travel and Fail-safe), retention 30 days, for 2 GB active; this history does not leave with the copy.

F07 · Dropped table still billedTo review

1 finding

TargetObserved
table CANOT_LAB.RAW.TMP_DROPPEDDropped on 2026-10-10; 300 MB still billed (Time Travel and Fail-safe).

F08 · Dynamic SQLTo review

2 findings

TargetObserved
object CANOT_LAB.MART.SP_DYNAMIC_JSProcedure (JAVASCRIPT): builds SQL at run time; the objects it touches cannot be read from the code.
object CANOT_LAB.MART.SP_DYNAMIC_PYProcedure (PYTHON): builds SQL at run time; the objects it touches cannot be read from the code.

F09 · External consumersTo review

1 finding

TargetObserved
object S_CLIENTSShare to 2 target accounts; 2 shared objects. Consumer reads are not seen by this scan.

F10 · Security to rebuildTo review

5 findings

TargetObserved
object CANOT_LAB.OPS.MP_EMAILMasking policy applied to 1 object; it does not leave with the copy; the copy requires an unfiltered principal.
object CANOT_LAB.OPS.PIITag applied to 1 object; it does not leave with the copy.
object CANOT_LAB.OPS.RAP_COUNTRYRow access policy applied to 1 object; it does not leave with the copy; the copy requires an unfiltered principal.
table CANOT_LAB.MART.FCT_ORDERSPolicies: OPS.RAP_COUNTRY. They do not leave with the copy; the copy requires a principal not filtered by these policies.
table CANOT_LAB.RAW.CUSTOMERSPolicies: OPS.MP_EMAIL; 1 tag. They do not leave with the copy; the copy requires a principal not filtered by these policies.

F11 · Scheduled chain and its failuresTo review

7 findings

TargetObserved
object CANOT_LAB.MART.DT_COUNTRY_REVENUEDynamic table, schedule 1 day; runs not read.
object CANOT_LAB.OPS.ORDERS_STREAMStream; on CANOT_LAB.RAW.ORDERS.
object CANOT_LAB.OPS.P_EVENTSPipe, state RUNNING; runs not read.
object CANOT_LAB.OPS.T_DAILYTask, schedule USING CRON 0 3 * * * Europe/Paris, state started; 365 runs, 2 failures, last on 2026-10-17.
object CANOT_LAB.OPS.T_EXPORT_NIGHTLYTask, schedule USING CRON 0 2 * * * UTC, state started; 30 runs, 30 failures, last on 2026-10-17.
object CANOT_LAB.OPS.T_REFRESHTask, state started; 365 runs, 0 failures, last on 2026-10-17; chain: CANOT_LAB.OPS.T_DAILY → CANOT_LAB.OPS.T_REFRESH.
object CANOT_LAB.OPS.T_SERVERLESSTask, schedule 60 MINUTE, state suspended; 0 runs, 0 failures.

F12 · Incomplete readTo review

3 findings

TargetObserved
read S33STREAMS not read (missing privilege); limits: streams (F11).
read S34TASK_VERSIONS not read (missing privilege); limits: task versions (F11).
read lectures_par_tableReads not determined for 1 table; limits: storage with no observed read (F05).

What this report does not quantify

  • Storage cost: your contract price not read.
  • Your contract rate: your contract price not read.
  • Destination storage, running both platforms in parallel, operations after the exit: depend on your contract and your architecture.
  • Identical results of translated queries: accepted ≠ identical result: translated to DuckDB, not compared; a canot drill compares the results.
  • Cost projections provided by the platform: not used: they cannot be verified from the scan.

Using this report for your regulatory work (GDPR, DORA, NIS2, Data Act, SecNumCloud, EBA)

These elements can support your own work on GDPR, DORA, NIS2, the Data Act, SecNumCloud or the EBA outsourcing guidelines. They are evidence, not a finding: this report is not a certification, it is not legal advice, and it does not say whether your contracts or your organization meet any regulation.

FrameworkWhat it asks, in shortWhat this report gives youWhat it does not cover
DORA (Regulation (EU) 2022/2554)Art. 28(8) and 30(3)(f): a realistic transition, with an adequate period.Measured throughput and a recovery time range from the exercise; a copy duration range (estimated) in the scan.Excludes human validation and the cutover of your applications.
DORA (Regulation (EU) 2022/2554)Art. 28: knowing what depends on the ICT provider.What does not move as is: views, routines, tasks, policies, external dependencies, with the evidence behind each finding.An inventory of the platform, not of your contracts or of the applications connected to it.
Data Act (Regulation (EU) 2023/2854)Art. 29: switching charges are withdrawn from 12 January 2027.The effort that remains yours: read cost, copy duration and rework estimates, each marked measured, computed or estimated.Says nothing about charges your provider may still apply before that date. Prices are dated catalogue figures, not your contract.
GDPR (Regulation (EU) 2016/679)Chapter V (transfers) and Art. 32 (security of processing).Where the copy is hosted, and which security objects do not move with it (masking and row policies, tags).The hosting location is the destination you chose. The legal assessment of a transfer is yours.
GDPR (Regulation (EU) 2016/679)Art. 5(1)(c): data minimisation.The scan reads metadata and execution history, not table contents. SQL text is masked and identities are pseudonymised.Applies to the scan only: an exit exercise (drill) reads the data it copies.
NIS2 (Directive (EU) 2022/2555)Art. 21(2)(d): security of the supply chain, including your relationship with each direct service provider.What ties you to this provider: external dependencies and objects that do not move as is, with the evidence behind each finding.Does not assess the provider's security measures.
EBA Guidelines on outsourcing arrangements (EBA/GL/2019/02)Exit strategies: documented, realistic, sufficiently tested and reviewed periodically for the outsourcing the guidelines target.The exit exercise (drill) and the inventory of what does not move (scan), as test evidence in your exit file.One exercise. Alternative providers, the business side and the periodic review are yours. Check which text applies to you alongside DORA.

References as of 2026-10-19. Check the current texts: they evolve, and their application depends on your situation.

Method

33 reads done out of 35. Each read is recorded with its status and its reason; a value that was not read stays empty, never 0.

IdViewStatusReasonRowsWindowLatency
S33STREAMSnot readmissing privilege; limits: streams (F11)not read
S34TASK_VERSIONSnot readmissing privilege; limits: task versions (F11)not read
S01TABLESread101.5 h
S02COLUMNSread10
S03TABLE_STORAGE_METRICSread102 h
S04STORAGE_USAGEread10from 2025-10-18 to 2026-10-17
S05METERING_DAILY_HISTORYread10from 2025-10-18 to 2026-10-173 h
S06WAREHOUSE_METERING_HISTORYread10from 2025-10-18 to 2026-10-173 h
S07QUERY_ATTRIBUTION_HISTORYread10
S08TABLE_DML_HISTORYread10from 2025-10-18 to 2026-10-176 h
S09TABLE_QUERY_PRUNING_HISTORYread10from 2025-10-18 to 2026-10-174 h
S10OBJECT_DEPENDENCIESread10
S11VIEWSread10
S12FUNCTIONSread10
S13PROCEDURESread10
S14TASKSread10
S15TASK_HISTORYread10from 2025-10-18 to 2026-10-17
S16SERVERLESS_TASK_HISTORYread10
S17PIPESread10
S18COPY_HISTORYread10

… and 15 more in reads.csv.

Privileges used

Level 3: SNOWFLAKE.OBJECT_VIEWER, SNOWFLAKE.USAGE_VIEWER, SNOWFLAKE.GOVERNANCE_VIEWER, SNOWFLAKE.SECURITY_VIEWER. Never requested: IMPORTED PRIVILEGES, MANAGE GRANTS, IMPORT SHARE, USAGE on functions, READ on stages.

Cost of the scan

ItemValueNature and basis
Queries sent35 queriesmeasured
Read time412 smeasured

Safeguards

  • Every SQL statement sent goes through a read-only guard: only SELECT, SHOW, DESCRIBE and ALTER SESSION SET statements go out. No write, no API activation, no parameter change.
  • Query users and roles pseudonymized with HMAC, using a salt drawn for this scan and never written; tag values hashed; locations reduced to the bucket.
  • Raw SQL text is never written: only normalized forms, with literals masked, leave collection.

Rules

  • Movement: recreated: DDL less than 7 days old with no later write; live: write less than 30 days old; frozen: older last write; not determined: writes not read.
  • Storage with no read: actual window of the view read, compared with 365 days; the blind spots of each view are listed in the finding.
  • Copy time: assumed throughput of 20 to 80 MB/s.
  • List prices are dated and sourced; they do not replace your contract price.

Next steps

This report describes your platform; it recommends neither leaving nor staying.

To measure an exit on a chosen scope: canot drill copies to Apache Iceberg, compares source and copy, and signs an evidence report.

To go further, the q4o assessment, from €22,000 excl. VAT: your contract rate, actual execution, scenarios, the steps to follow. canot.io