Concepts clés et architecture

Snowflake est un entrepôt de données analytique fourni en tant que « Software as a Service » (SaaS). Snowflake fournit un entrepôt de données plus rapide, plus facile à utiliser et beaucoup plus flexible que les autres entrepôts classiques.

L’entrepôt de données de Snowflake n’est pas construit sur une base de données existante ou sur une plateforme logicielle « big data », par exemple Hadoop. L’entrepôt de données Snowflake utilise un nouveau moteur de base de données SQL doté d’une architecture unique conçue pour le Cloud. Pour l’utilisateur, Snowflake présente de nombreuses similitudes avec d’autres entrepôts de données d’entreprise, mais offre aussi des fonctionnalités supplémentaires et des capacités uniques.

Dans ce chapitre :

Entrepôt de données en tant que service Cloud

L’entrepôt de données de Snowflake est une véritable offre SaaS. Plus précisément :

  • Il n’y a aucun matériel (virtuel ou physique) à sélectionner, installer, configurer ou gérer.

  • Il n’y a aucun logiciel à installer, à configurer ou à gérer.

  • L’entretien, la gestion et le réglage continus sont assurés par Snowflake.

Snowflake fonctionne entièrement sur une infrastructure sur le Cloud. Tous les composants du service Snowflake (autre qu’un client de ligne de commande en option) fonctionnent dans une infrastructure de Cloud publique.

Snowflake utilise des instances de calcul virtuelles pour ses besoins de calcul et un service de stockage pour le stockage permanent des données. Snowflake ne peut pas être exécuté sur des infrastructures Cloud privées (on-premise ou hébergées).

Snowflake n’est pas un pack logiciel pouvant être installé par un utilisateur. Snowflake gère tous les aspects de l’installation et de la mise à jour du logiciel.

Architecture Snowflake

L’architecture de Snowflake est un mélange d’architectures de bases de données classique à disque partagé, et d’architectures de bases de données sans partage. Comme pour les architectures à disque partagé, Snowflake utilise un entrepôt de données central pour les données persistantes accessibles depuis tous les nœuds de calcul de l’entrepôt de données. Mais à l’instar des architectures sans partage, Snowflake traite les requêtes à l’aide de grappes de calcul à traitement massivement parallèle (« massively parallel processing » ou MPP) où chaque nœud de la grappe stocke localement une partie de l’ensemble des données. Cette approche offre la simplicité de gestion des données d’une architecture à disque partagé, mais avec les avantages en termes de performance et de mise à l’échelle d’une architecture sans partage.

Architecture overview

L’architecture unique de Snowflake se compose de trois couches clés :

Stockage de bases de données

Lorsque les données sont chargées dans Snowflake, Snowflake réorganise ces données dans son format interne optimisé, compressé et en colonnes. Snowflake stocke ces données optimisées dans le stockage Cloud.

Snowflake gère tous les aspects du stockage de ces données : l’organisation, la taille des fichiers, la structure, la compression, les métadonnées, les statistiques, etc. Les objets de données stockés par Snowflake ne sont ni directement visibles ni directement accessibles par les clients. Ils ne sont accessibles que par des opérations de requête SQL exécutées avec Snowflake.

Traitement des requêtes

L’exécution de la requête s’effectue dans la couche de traitement. Snowflake traite les requêtes à l’aide « d’entrepôts virtuels ». Chaque entrepôt virtuel est une grappe de calcul à traitement massivement parallèle (MPP) composée de plusieurs nœuds de calcul alloués par Snowflake à partir d’un fournisseur Cloud.

Chaque entrepôt virtuel est une grappe de calcul indépendante qui ne partage aucune ressource de calcul avec d’autres entrepôts virtuels. Par conséquent, chaque entrepôt virtuel n’a aucune conséquence sur les performances des autres entrepôts virtuels.

Pour plus d’informations, voir Entrepôts virtuels.

Services Cloud

La couche de services Cloud constitue un ensemble de services qui coordonnent les activités dans Snowflake. Ces services relient tous les différents composants de Snowflake afin de traiter les demandes des utilisateurs, de la connexion à l’envoi des requêtes. La couche de services Cloud s’exécute également sur des instances de calcul fournies par Snowflake à partir du fournisseur Cloud.

Services compris dans cette couche :

  • Authentification

  • Gestion de l’infrastructure

  • Gestion des métadonnées

  • Analyse syntaxique et optimisation des requêtes

  • Contrôle d’accès

Connexion à Snowflake

Snowflake prend en charge plusieurs méthodes de connexion au service :

  • Une interface utilisateur Web où tous les aspects de la gestion et de l’utilisation de Snowflake peuvent être accédés.

  • Clients de ligne de commande (p. ex. SnowSQL) qui peuvent également accéder à tous les aspects de la gestion et de l’utilisation de Snowflake.

  • Les pilotes ODBC et JDBC qui peuvent être utilisés par d’autres applications (p. ex. Tableau) pour se connecter à Snowflake.

  • Connecteurs natifs (p. ex. Python) qui peuvent être utilisés pour développer des applications de connexion à Snowflake.

  • Connecteurs tiers qui peuvent être utilisés pour connecter des applications, telles que des outils ETC (p. ex. Informatica) et des outils d’intelligence d’affaires à Snowflake.

Pour plus d’informations, voir Ouverture de session dans Snowflake.