Traçabilité des données Snowflake : Traçabilité au niveau des colonnes à partir de l’historique des requêtes

Traçabilité des données Snowflake Il s'agit de la carte au niveau des colonnes de la façon dont les données circulent dans votre compte Snowflake : quelles tables et colonnes sources alimentent chaque table, vue ou tableau de bord cible, et quelles transformations (jointures, APLATIR Extensions, fonctions de fenêtrage, filtres — tout cela se fait progressivement. Snowflake UTILISATION DU COMPTE Les vues indiquent quels objets ont été consultés, mais elles s'arrêtent à l'historique d'accès au niveau de la table ; pour savoir comment une colonne a été calculée à partir d'une autre, il faut analyser le code SQL lui-même. Gudu SQLFlow Il fait exactement cela : il ingère votre historique de requêtes Snowflake, votre DDL et vos vues, analyse chaque instruction avec une grammaire spécifique à Snowflake et produit un diagramme de lignage interactif au niveau des colonnes.

Voir maintenant : collez n'importe quelle requête Snowflake dans le Visualiseur de lignées Snowflake gratuit en ligne Sélectionnez le dialecte Snowflake pour obtenir un diagramme interactif au niveau des colonnes. L'édition cloud propose une version gratuite.

Ce que Snowflake vous offre nativement — et ses limites

Snowflake enregistre déjà beaucoup de choses. UTILISATION DU COMPTE Le schéma expose des vues de l'activité de votre compte, permettant de reconstituer les tables consultées par une requête et les objets modifiés. Ces informations sont particulièrement utiles pour l'audit des accès et la détection des dépendances de manière générale ; toute stratégie de traçabilité sur Snowflake devrait donc s'appuyer sur ces données de télémétrie plutôt que de les ignorer.

Ce que la télémétrie d'utilisation du compte ne vous indique pas, c'est transformer traçabilité au niveau de la granularité des colonnes. Savoir qu'une requête a touché commandes brutes et a écrit analytique.revenu ne vous dit pas que revenu total est SOMME(commandes.montant) après un filtre d'état, ou qu'un QUALIFIER Cette clause a supprimé silencieusement des lignes en fonction d'une colonne qui n'apparaît jamais dans le résultat. Cette information se trouve à un seul endroit : le texte SQL de l'instruction. Son extraction nécessite un véritable analyseur SQL Snowflake, capable de comprendre… APLATIR, QUALIFIER, semi-structuré VARIANTE chemins, CTE multiniveaux et SÉLECTIONNER * expansion par rapport au schéma actuel.

Traçabilité des builds à partir de QUERY_HISTORY : ce qui a été réellement exécuté

SQLFlow prend en charge Historique des requêtes Snowflake en tant qu'entrée nativeAu lieu de deviner vos pipelines à partir de la documentation ou des configurations des tâches planifiées, vous fournissez à SQLFlow les instructions que Snowflake a réellement exécutées. CRÉER UNE TABLE COMME SÉLECTION, INSÉRER, FUSIONNER, et COPIE Les instructions de votre historique de requêtes, ainsi que les définitions DDL et de vues qui leur fournissent leur contexte de schéma, sont incluses. Le résultat est une traçabilité ancrée dans la réalité.

  • Aucune zone d'ombre liée au SQL ad hoc. Les remplissages ponctuels, les instructions CTAS rédigées par les analystes et les requêtes exécutées depuis des notebooks ou des outils de BI apparaissent dans l'historique des requêtes et donc dans votre traçabilité. Les approches basées sur la configuration qui se contentent d'analyser le référentiel de votre orchestrateur les ignorent complètement.
  • Les vues s'affichent correctement. SQLFlow ingère les définitions de vues en même temps que l'historique des requêtes, donc une requête contre vw_customer_360 trace à travers le corps de la vue jusqu'aux tables et colonnes de base.
  • L'extension Star utilise votre schéma réel. Avec DDL chargé, SÉLECTIONNER * s'étend à la liste réelle des colonnes, de sorte que les limites au niveau des colonnes restent précises au lieu de se réduire à des suppositions au niveau du tableau.

Outre le SQL collé et les fichiers téléchargés, SQLFlow accepte également les métadonnées en temps réel via JDBC et les fichiers manifestes dbt, ce qui permet de combiner la traçabilité des requêtes exécutées avec celle définie par le modèle dans un seul graphique. Les journaux de requêtes Redshift bénéficient du même traitement natif si vous utilisez une infrastructure multi-entrepôts.

Traçabilité au niveau des colonnes via du SQL Snowflake réel

Snowflake SQL n'est pas conforme à la norme ANSI générique. Prenons l'exemple d'une étape de pipeline qui décompose les lignes de commande semi-structurées et conserve les trois commandes principales de chaque client :

CRÉER OU REMPLACER LA TABLE analytics.top_customer_orders COMME SÉLECTIONNER o.customer_id, f.value:sku::STRING AS sku, f.value:qty::NUMBER AS quantity, o.order_total FROM raw.orders o, LATERAL FLATTEN(input => o.line_items) f QUALIFY ROW_NUMBER() OVER ( PARTITION BY o.customer_id ORDER BY o.order_total DESC ) <= 3;

Une analyse correcte de la lignée de cette affirmation doit établir que référence et quantité dériver de raw.orders.line_items colonne VARIANT à travers un APLATIR fonction de table et un cast; cela identifiant_client et total de la commande couler directement; et que le QUALIFIER cette clause rend identifiant_client et total de la commande Le jeu de résultats est remodelé une seconde fois, en fonction des influences du filtrage des lignes, et non du flux de données. L'analyseur Snowflake de SQLFlow modélise l'ensemble de ces opérations, car le moteur de traçabilité sous-jacent (le même) le fait. Analyseur SQL général engine, validated against roughly 13,600 per-dialect test fixtures) resolves every column reference through the full semantic model of the statement.

Lignée directe vs lignée indirecte : pourquoi la qualification est importante

Que QUALIFIER Cette clause illustre une distinction que la plupart des outils de généalogie omettent. lignée directe est le flux de données : commandes.total_commande atterrit dans top_customer_orders.order_total. lignée indirecte est l'influence : total de la commande Il détermine également quelles lignes survivent au filtrage par fenêtre ; par conséquent, toute modification de son calcul affecte le résultat, même pour les colonnes qu’il ne traite jamais. SQLFlow enregistre les lignées directes et indirectes comme des types de relations distincts et activables séparément. Pour l’analyse d’impact sur Snowflake — où QUALIFIER, , conditions de jonction, et GROUPER PAR Les clés véhiculent une véritable logique commerciale — cette distinction fait la différence entre un rayon d'explosion précis et une sous-estimation rassurante.

dbt sur Snowflake

Si vos transformations Snowflake s'exécutent via dbt, SQLFlow importe les Manifeste DBT SQLFlow génère directement une traçabilité au niveau des colonnes de vos modèles, plus détaillée que le graphique modèle à modèle fourni par la documentation de dbt. Comme SQLFlow ingère également les données de l'entrepôt de données (DDL, vues, historique des requêtes), vous pouvez faire correspondre la configuration déclarée dans votre projet dbt avec celle exécutée par votre compte Snowflake : le CTAS ad hoc exécuté autour de dbt apparaît à côté des modèles, dans le même graphique.

Comment obtenir la traçabilité des données Snowflake : trois voies

CheminSaisirIdéal pour
SQLFlow CloudCollez du code SQL, téléchargez des fichiers, connectez des sources dans le navigateurJe l'essaie aujourd'hui ; pour des requêtes et des projets individuels. Version gratuite ; version premium à 49,99 €/mois.
SQLFlow sur siteHistorique des requêtes, DDL, manifestes dbt — tout cela au sein de votre réseauEnvironnements réglementés où les requêtes SQL ne doivent pas quitter votre infrastructure. Docker/Kubernetes ; 1 TP3T500/mois ou 1 TP3T4 800 en une seule fois par type de base de données.
API REST / Bibliothèque Java / Widget JSAnalyse programmatique et diagrammes intégrésIntégrer la traçabilité à votre propre plateforme ou catalogue.

À l'échelle de l'entreprise, SQLFlow effectue des analyses par lots de plus de 100 bases de données et de plus d'un million de colonnes grâce à des analyses incrémentales et un référentiel de traçabilité persistant, et exporte vers DataHub, Microsoft Purview et OpenMetadata Ainsi, la traçabilité Snowflake peut être intégrée au catalogue que vous utilisez déjà. Les plateformes de catalogue excellent dans l'inventaire, la gestion des droits et la découverte au sein de votre infrastructure. Pour analyser le SQL complexe et obtenir des liens précis au niveau des colonnes, elles bénéficient d'un moteur spécialisé. La confidentialité est garantie : SQLFlow effectue uniquement une analyse statique du code SQL et des métadonnées du schéma, et ne lit jamais les lignes de vos tables Snowflake.

Au-delà de Snowflake : un graphe de lignée à travers 39 dialectes

Rares sont les comptes Snowflake qui fonctionnent de manière isolée. Les environnements comprennent généralement un ancien système Oracle ou SQL Server alimentant l'entrepôt de données, des tâches Spark ou Databricks en parallèle, et une couche SQL de BI par-dessus. SQLFlow intègre des analyseurs syntaxiques spécifiques à chaque dialecte pour 39 bases de données et moteurs de requêtes ; ainsi, le même moteur qui lit l'historique de vos requêtes Snowflake gère également… Traçabilité des données BigQuery et Lignée de Databricks et Spark SQLainsi que des sources riches en procédures stockées comme Oracle PL/SQL et T-SQL, y compris le SQL dynamique au sein des procédures. Cela est particulièrement important lors des migrations vers Snowflake, car le graphe de dépendances du système existant doit être cartographié avant la migration. Pour une description complète du fonctionnement du moteur, consultez la documentation. Présentation de l'outil de traçabilité des données SQL.

Foire aux questions

Est-il possible d'obtenir la lignée au niveau des colonnes à partir des seules vues ACCOUNT_USAGE de Snowflake ?

Non. La télémétrie d'utilisation des comptes fournit l'historique d'accès au niveau des tables : quels objets une requête a lus et écrits. La traçabilité des transformations au niveau des colonnes (quelles colonnes sources alimentent quelles colonnes de sortie, via quelles fonctions et quels filtres) nécessite l'analyse du texte SQL des instructions elles-mêmes, ce que fait SQLFlow.

Comment SQLFlow ingère-t-il mon compte Snowflake ?

Plusieurs méthodes sont possibles : l’historique des requêtes Snowflake comme entrée native, les métadonnées de schéma en temps réel via JDBC, le chargement des définitions DDL et des vues, le collage de SQL et les fichiers manifestes dbt. L’association de l’historique des requêtes et des définitions DDL offre la meilleure solution : elle permet de reconstituer la lignée des instructions réellement exécutées, avec un contexte de schéma complet pour l’expansion en étoile et la résolution des vues.

SQLFlow comprend-il la syntaxe spécifique à Snowflake comme FLATTEN et QUALIFY ?

Oui. SQLFlow utilise une grammaire Snowflake dédiée, et non un analyseur ANSI générique. Aplatissement latéral, QUALIFIER, expressions de chemin VARIANT comme valeur:sku::CHAÎNE, et CRÉER UNE TABLE COMME SÉLECTION sont analysées et tracées au niveau des colonnes, les clauses de filtrage étant capturées comme lignée indirecte.

Est-ce que SQLFlow lit les données de mes tables Snowflake ?

Non. SQLFlow effectue une analyse statique du code SQL et peut lire les métadonnées du schéma (définitions des tables et des colonnes). Il ne lit jamais les lignes des tables. Avec l'édition sur site, même votre code SQL reste au sein de votre réseau, ce qui est important si votre historique de requêtes contient des données sensibles.

Puis-je exporter la lignée Snowflake vers mon catalogue de données ?

Oui. Les déploiements en entreprise incluent des adaptateurs d'exportation pour DataHub, Microsoft Purview et OpenMetadata, ainsi que des exportations JSON, CSV et PNG et une API REST pour les intégrations personnalisées.

Quel est le coût de Snowflake Lineage avec SQLFlow ?

SQLFlow Cloud est gratuit au départ ; la version Premium coûte 49,99 TP3T/mois. SQLFlow On-Premise coûte 500 TP3T/mois ou 4 800 TP3T en une seule fois par type de base de données sélectionné (Snowflake compte comme un seul type), et peut être installé sur deux serveurs. Voir tarification pour plus de détails.

Cartographiez votre lignée Snowflake dès aujourd'hui

Collez une requête Snowflake dans le visualiseur gratuit, ou contactez-nous pour analyser votre historique de requêtes et l'ensemble de votre infrastructure.