Accéder au contenu principal

Architecture Snowflake : Une plongée technique dans l'entreposage de données dans le cloud

Découvrez l'architecture à trois couches de Snowflake, la conception de l'entrepôt de données et les fonctionnalités avancées. Découvrez comment le stockage, l'informatique et les services fonctionnent ensemble.
Actualisé 27 févr. 2025  · 12 min de lecture

Snowflake est une plateforme de données basée sur le cloud qui répond aux défis fondamentaux de la gestion moderne des données. Lancée en 2014, elle offre aux organisations une solution centralisée pour le stockage et le traitement des opérations de données à grande échelle.

Les systèmes traditionnels de gestion des données présentent souvent des limites importantes pour les organisations. Ces systèmes obligent généralement les entreprises à choisir entre la performance des requêtes, l'accès simultané des utilisateurs et la rentabilité. L'architecture de Snowflake a été développée pour éliminer ces contraintes grâce à son approche du stockage des données et du calcul.

Ce guide examine le cadre architectural et les mécanismes opérationnels de Snowflake. Bien que la plateforme intègre des technologies complexes, cette explication s'attachera à rendre ces concepts accessibles aux lecteurs ayant une compréhension de base des systèmes de données.

Le guide abordera les questions suivantes

  • Les principes fondamentaux du système de stockage de données de Snowflake
  • Les composants architecturaux qui forment son infrastructure
  • L'approche de la plate-forme en matière d'accès simultané aux données
  • Les avantages techniques qui favorisent son adoption

Cette analyse vous permettra d'acquérir une compréhension fondamentale du fonctionnement de Snowflake au sein d'une infrastructure de données moderne.

Pour les lecteurs qui découvrent Snowflake, la section Introduction à Snowflake pour les débutants fournit des connaissances de base essentielles.

Concepts fondamentaux de l'architecture Snowflake

L'architecture de Snowflake diffère de celle d'un entrepôt de données en utilisant les principes modernes du cloud pour résoudre les problèmes d'évolutivité et de performance. L'architecture met en œuvre une approche multicouche qui divise le stockage, l'informatique et les services en composants distincts mais connectés.

Couches de l'architecture Snowflake

L'image illustre l'architecture à trois couches de Snowflake : Services cloud pour l'authentification et l'optimisation, Traitement des requêtes avec des entrepôts virtuels, et Stockage des bases de données pour les données cloud évolutives. Cette conception garantit de hautes performances et une grande flexibilité.

Source : Documentation sur le Snowflake

L'architecture de Snowflake utilise une conception unique en trois couches qui sépare les fonctionnalités de base tout en maintenant une intégration transparente. Examinons chaque couche en détail :

1. Couche de stockage

La couche de stockage de Snowflake repose sur le stockage d'objets dans le cloud (Amazon S3, Azure Blob Storageou Google Cloud Storage) et organise les données en micro-partitions immuables (50-500 Mo) dans un format compressé en colonnes. Ces micro-partitions stockent des métadonnées telles que les valeurs min/max des colonnes, ce qui permet d'élaguer efficacement les requêtes.

Cette couche est auto-optimisante et ne nécessite aucune maintenance manuelle. Il sélectionne intelligemment le meilleur algorithme de compression par colonne en fonction du type de données et des modèles, ce qui garantit des taux de compression élevés et des requêtes analytiques rapides en ne lisant que les colonnes nécessaires.

2. Couche de calcul

La couche informatique se compose d'entrepôts virtuels - des grappes MPP indépendantes qui exécutent des requêtes SQL et des opérations DML. Chaque entrepôt fait fonctionner plusieurs nœuds en parallèle, de manière totalement isolée afin d'éviter toute interférence au niveau des performances.

Ces ressources sans état peuvent être démarrées, arrêtées, redimensionnées ou clonées sans affecter les données. Le redimensionnement redistribue automatiquement les charges de travail, tandis que la fonction de suspension automatique met en pause les entrepôts inactifs et les reprend en quelques secondes en cas de besoin.

3. Couche services

La couche de services orchestre les opérations de Snowflake, en gérant un magasin de métadonnées distribué qui suit les tableaux, les vues, les politiques de sécurité et les requêtes. L'optimiseur de requêtes exploite ces métadonnées pour générer des plans d'exécution efficaces basés sur la distribution des données, les ressources informatiques et les schémas d'accès.

Il garantit la conformité ACID avec un contrôle avancé de la concurrence tout en gérant l'authentification via SSO, MFA et le contrôle d'accès basé sur les rôles à tous les niveaux. Cette couche gère également la gestion des sessions et l'application de la sécurité.

Comment les couches fonctionnent-elles ensemble ?

L'interaction entre les couches de Snowflake permet des fonctionnalités puissantes telles que le partage sécurisé des données, l'informatique multi-clusters et l'évolutivité dynamique. Le partage des données est basé sur les métadonnées - seuls des pointeurs sont échangés - et l'accès est contrôlé par des politiques de sécurité très fines. Les consommateurs peuvent interroger les données partagées en utilisant leurs propres ressources informatiques sans duplication.

L'informatique multi-clusters permet à des clusters de calcul indépendants d'accéder à la même couche de stockage tout en conservant des caches distincts et en garantissant la cohérence. Les charges de travail peuvent être isolées en dédiant des entrepôts à l'ETL, à la BI ou à la science des données. L'architecture de Snowflake prend également en charge l'évolutivité dynamique, permettant au stockage et au calcul d'évoluer indépendamment tandis que la couche de services optimise l'allocation des ressources et les performances des requêtes.

Pour approfondir ces concepts et d'autres encore, vous pouvez explorer le cours d'introduction au flocon de neige. Introduction à Snowflake.

Architecture de l'entrepôt de données de Snowflake

L'architecture de l'entrepôt de données de Snowflake s'appuie sur sa conception en trois couches pour offrir une modélisation flexible des données et un traitement efficace des requêtes. Il prend en charge les données structurées et semi-structurées tout en optimisant les performances et en simplifiant la gestion.

Modèle de données

Snowflake prend en charge les données structurées à l'aide de concepts de bases de données relationnelles, en supportant les types de données SQL, les contraintes et les relations par le biais de clés primaires et étrangères. Les informations sensibles bénéficient d'un cryptage au niveau de la colonne. Pour les données semi-structurées, Snowflake gère nativement JSON, XML, Parquet et Avro en utilisant le type de données VARIANT, en déduisant automatiquement les schémas et en permettant des requêtes efficaces avec des fonctions spécialisées comme FLATTEN et PARSE_JSON.

Au niveau du stockage, les données sont automatiquement divisées en micropartitions de 50 à 500 Mo, chacune stockant des métadonnées telles que les valeurs min/max des colonnes et les fréquences nulles. Snowflake fait le cursus des regroupements naturels et réorganise périodiquement les données pour améliorer l'efficacité des requêtes, ce qui élimine la nécessité de gérer manuellement les partitions.

Architecture de traitement des requêtes

Snowflake traite les requêtes à travers plusieurs couches coordonnées qui optimisent l'exécution. L'optimiseur de requêtes transforme les requêtes SQL en plans d'exécution logiques et évalue plusieurs plans physiques en fonction de la taille des tableaux, de l'indexation et de la mise en cache. À l'aide d'un modèle de coût, il sélectionne l'approche la plus efficace, en déterminant les algorithmes de jointure, les méthodes de tri et les stratégies de déplacement des données.

Le moteur d'exécution distribue les requêtes sur des nœuds de traitement parallèles. En exploitant les métadonnées, il élague les partitions inutiles et ne lit que les colonnes pertinentes dans le format de stockage en colonnes de Snowflake, ce qui améliore l'efficacité. Un cache de résultats 24 heures sur 24 améliore encore les performances en réutilisant les résultats de la requête calculés précédemment lorsque les données sous-jacentes restent inchangées.

L'architecture de Snowflake permet des schémas d'accès aux données efficaces. Le clonage sans copie permet de dupliquer instantanément les tableaux sans copier les données, tandis que le voyage dans le temps préserve les versions historiques pour les requêtes ponctuelles. Le contrôle de la concurrence multi-version (MVCC) garantit la cohérence des transactions, ce qui permet d'utiliser des charges de travail à haute fréquence sans conflits de verrouillage. Ces optimisations, associées à une mise en cache intelligente et à l'élagage des partitions, permettent à Snowflake de fournir des analyses évolutives et performantes avec une intervention manuelle minimale.

Fonctionnalités avancées de Snowflake

Snowflake offre des fonctionnalités avancées en matière de gestion des ressources, de sécurité, d'intégration et de surveillance afin d'améliorer les capacités de l'entreprise.

Gestion des ressources 

Sa gestion dynamique des ressources comprend la planification des entrepôts et la mise à l'échelle automatique, la mise en pause automatique des entrepôts inactifs et l'ajustement des ressources informatiques en fonction de la charge de travail. Les administrateurs peuvent définir des calendriers de démarrage et d'arrêt automatisés et exploiter des mesures détaillées des ressources pour optimiser les coûts et les performances. 

Interroger la gouvernance

Les fonctions de gouvernance des requêtes permettent un contrôle précis de la consommation des ressources, y compris des limites dynamiques, une mise en file d'attente intelligente et un routage personnalisé des requêtes, ce qui garantit une gestion efficace de la charge de travail.

Intégration de l'entreprise

Pour l'intégration des entreprises, Snowflake prend en charge les procédures stockées en JavaScript et Java, ce qui permet aux développeurs de mettre en œuvre une logique commerciale complexe au-delà du langage SQL. 

Le contrôle des versions permet de revenir facilement en arrière, tandis que la gestion des erreurs garantit une exécution sans heurts grâce à une journalisation détaillée. Le cadre d'échange de données sécurisé de la plateforme permet aux organisations de partager et de monétiser des ensembles de données via des places de marché de données privées. 

Les entreprises peuvent contrôler l'accès, le cursus d'utilisation et mettre en place une facturation automatisée, créant ainsi de nouvelles opportunités de revenus tout en maintenant la conformité et la sécurité.

Ces fonctionnalités renforcent collectivement la position de Snowflake en tant que plateforme de données complète, offrant évolutivité, automatisation et sécurité. Grâce à une gestion intelligente de la charge de travail, à des intégrations transparentes et à des outils de gouvernance robustes, les entreprises peuvent optimiser les performances, réduire les coûts et collaborer en toute sécurité sur les données.

Comparaisons d'architecture

Comparons l'architecture de Snowflake avec les entrepôts de données traditionnels et les concurrents modernes pour comprendre sa proposition de valeur unique.

Entrepôts de données traditionnels

Principales différences architecturales :

  • Les systèmes traditionnels associent étroitement le stockage et l'informatique
  • Le partitionnement physique des données nécessite une maintenance manuelle
  • Planification de la capacité matérielle nécessaire pour les charges de travail maximales
  • Capacité limitée à traiter des données semi-structurées

Comparaison des modèles de coûts :

  • La méthode traditionnelle nécessite un investissement initial en matériel
  • La capacité doit tenir compte de la croissance future
  • Les coûts de maintenance comprennent le matériel et les installations
  • Les coûts de licence sont généralement basés sur les cœurs de processeur

Caractéristiques de performance :

  • Limité par des contraintes matérielles
  • La mise à l'échelle des utilisateurs simultanés nécessite des mises à niveau matérielles
  • La performance des requêtes se dégrade avec le nombre d'utilisateurs
  • Contestation des ressources entre les charges de travail

Concurrents modernes

1. Amazon Redshift

  • Architecture : Basé sur des grappes ; opérations manuelles d'aspiration ; utilise des cartes de zones
  • Coût : Tarification horaire basée sur les nœuds ; limitée à l'écosystème AWS

2. Google BigQuery

  • Architecture : Sans serveur avec tarification par créneaux horaires ; mise en cache automatique des requêtes (rétention de 24 heures)
  • Coût : Numérisation à l'octet ; contrôle limité des calculs

3. Azure Synapse

  • Architecture : Hybride (sans serveur et pools dédiés) ; gestion complexe des ressources ; prise en charge des mémoires en ligne et des mémoires en colonne.
  • Coût : Tarification basée sur les DTU ou vCore ; intégration avec les services Azure

Autres considérations relatives à la performance :

1. Optimisation des requêtes

  • BigQuery : Optimisation automatique, contrôle limité par l'utilisateur
  • Redshift : Opérations manuelles d'aspiration et d'analyse
  • Synapse : Nécessite des mises à jour statistiques et une indexation

2. Gestion de la simultanéité

  • BigQuery : Système d'attribution des créneaux horaires
  • Redshift : Gestion de la charge de travail basée sur les files d'attente
  • Synapse : Ressources pour les devoirs en classe

3. Architecture de stockage

  • BigQuery : Stockage en colonnes avec partage automatique
  • Redshift : Distribution basée sur les nœuds avec gestion des tranches
  • Synapse : Options Rowstore et columnstore

4. Variations de la structure des coûts

  • BigQuery : Payez par octet scanné
  • Redshift : Tarification horaire basée sur les nœuds
  • Synapse : Tarification basée sur les DTU ou vCore

5. Capacités d'intégration

  • BigQuery : Intégration native des services GCP
  • Redshift : Intégration de l'écosystème AWS
  • Synapse : Services de plateforme Azure

Ces différences architecturales ont un impact :

  • Complexité opérationnelle
  • Gestion des ressources
  • Prévisibilité des coûts
  • Optimisation des performances
  • Intégration de l'écosystème

Pour une approche structurée de la maîtrise de ces concepts, consultez le guide d'apprentissage complet de Snowflake.

Voici un tableau qui résume ces différences :

Aspect BigQuery Redshift Synapse Snowflake
Architecture Sans serveur Basé sur les grappes Hybride (sans serveur et dédié) Multi-cluster, données partagées
Stockage Colonnaire avec auto-éclairage Distribution basée sur les nœuds Rowstore & columnstore Colonnes micropartitionnées
Optimisation des requêtes Automatique, contrôle limité Aspiration/analyse manuelle Indexation manuelle et statistiques Optimisation automatique
Concurrence Allocation basée sur les créneaux horaires WLM basé sur les files d'attente Classes de ressources Mise à l'échelle de l'entrepôt virtuel
Modèle de tarification Par octet analysé Basé sur les nœuds, toutes les heures DTU/vCore-based Utilisation de l'entrepôt par seconde
Intégration Services natifs GCP L'écosystème AWS Plate-forme Azure Prise en charge multi-cloud
Gestion des ressources Automatisé Gestion manuelle des nœuds Gestion complexe des piscines Automatisé avec contrôle manuel
Support des types de données Forte semi-structurée Semi-structuré limité Semi-structuré limité Semi-structuré autochtone
Maintenance Minime Une aspiration régulière est nécessaire Entretien de l'index nécessaire Aucune maintenance
Mise en cache Automatique sur 24 heures Géré par l'utilisateur Limité intégré Mise en cache automatique des résultats

Conclusion

Snowflake a changé la façon dont les entreprises travaillent avec les données dans le cloud en les rendant plus faciles et plus efficaces que les anciens systèmes. La façon dont Snowflake est construit permet aux entreprises de stocker et de traiter leurs données séparément, ce qui les aide à économiser de l'argent tout en obtenant des résultats rapides. Grâce aux solides fonctions de sécurité de Snowflake, les entreprises peuvent être sûres que leurs données sont sécurisées. Le système fonctionne sans problème avec différents fournisseurs de cloud, ce qui donne aux entreprises une plus grande flexibilité quant à l'endroit où elles conservent leurs données.

Pour tous ceux qui souhaitent en savoir plus sur Snowflake, il existe de nombreuses ressources utiles et des supports de formation disponibles sur DataCamp. 

La plateforme continue de s'enrichir de nouvelles fonctionnalités, telles que l'intelligence artificielle, qui la rendent encore plus performante pour les entreprises. Les entreprises qui utilisent Snowflake peuvent s'adapter rapidement à l'évolution de leurs besoins en données au fil du temps. L'avenir s'annonce radieux pour Snowflake, car de plus en plus d'organisations le choisissent comme principale plateforme de gestion des données.

FAQ sur l'architecture Snowflake

Qu'est-ce qui différencie l'architecture de Snowflake des entrepôts de données traditionnels ?

Snowflake utilise une architecture unique à trois couches qui sépare le stockage, le calcul et les services. Contrairement aux systèmes traditionnels qui couplent étroitement ces composants, la conception de Snowflake permet une mise à l'échelle indépendante, une meilleure gestion des ressources et une meilleure rentabilité.

Comment Snowflake gère-t-il l'accès simultané des utilisateurs ?

Snowflake gère les accès simultanés par le biais d'entrepôts virtuels - des grappes de calcul indépendantes qui peuvent être augmentées ou réduites en fonction des besoins. Plusieurs entrepôts peuvent accéder simultanément aux mêmes données sans dégradation des performances, tandis que la couche de services garantit la cohérence des données.

Quelle est l'architecture des médaillons à Snowflake ?

L'architecture en médaillon est un modèle d'organisation des données à trois niveaux : Bronze (données brutes), Argent (données normalisées) et Or (données prêtes à l'emploi). Cette structure permet d'affiner progressivement les données tout en conservant leur filiation et le contrôle de leur qualité.

Comment fonctionne le système de stockage de Snowflake ?

Snowflake utilise des micropartitions (morceaux de 50 à 500 Mo) stockées dans un format en colonnes avec optimisation automatique. Le système conserve des métadonnées sur le contenu de chaque partition, ce qui permet un traitement efficace des requêtes grâce à l'élagage des partitions et à la mise en cache intelligente.

Comment Snowflake se compare-t-il aux autres entrepôts de données dans le cloud ?

Snowflake se distingue de ses concurrents comme Redshift, BigQuery et Synapse par sa prise en charge multi-cloud, ses fonctions d'optimisation automatique et son modèle de tarification unique basé sur l'utilisation de l'entrepôt à la seconde. Chaque plateforme a des approches distinctes en matière de gestion des ressources et de traitement des requêtes.


Bex Tuychiev's photo
Author
Bex Tuychiev
LinkedIn

Je suis un créateur de contenu en science des données avec plus de 2 ans d'expérience et l'un des plus grands followings sur Medium. J'aime écrire des articles détaillés sur l'IA et la ML dans un style un peu sarcastıc, car il faut bien faire quelque chose pour les rendre un peu moins ennuyeux. J'ai produit plus de 130 articles et un cours DataCamp, et un autre est en cours d'élaboration. Mon contenu a été vu par plus de 5 millions de personnes, dont 20 000 sont devenues des adeptes sur Medium et LinkedIn. 

Sujets

Les meilleurs cours de DataCamp

cursus

Associate Data Engineer in SQL

30 hours hr
Learn the fundamentals of data engineering: database design and data warehousing, working with technologies including PostgreSQL and Snowflake!
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow