Concepts clés et architecture¶
Le Data Cloud de Snowflake est alimenté par une plate-forme de données avancée fournie sous forme de service autogéré. Snowflake permet des solutions de stockage de données, de traitement et de mise en place de solutions analytiques plus rapides, plus faciles à utiliser et bien plus flexibles que les offres traditionnelles.
La Snowflake Data Platform ne repose sur aucune technologie de base de données existante ni sur des plates-formes logicielles de Big Data telles que Hadoop. À la place, Snowflake combine un tout nouveau moteur d’interrogation SQL avec une architecture novatrice, conçue spécialement pour le Cloud. Pour l’utilisateur, Snowflake offre toutes les fonctionnalités d’une base de données analytique d’entreprise, ainsi que de nombreuses autres fonctionnalités spéciales et des capacités uniques.
Dans ce chapitre :
Plate-forme de données en tant que service autogéré¶
Snowflake est un véritable service autogéré, ce qui signifie :
Il n’y a aucun matériel (virtuel ou physique) à sélectionner, installer, configurer ou gérer.
Il n’y a pratiquement aucun logiciel à installer, à configurer ou à gérer.
La maintenance, la gestion, les mises à jour et les réglages sont assurés par Snowflake.
Snowflake fonctionne entièrement sur une infrastructure sur le Cloud. Tous les composants du service Snowflake (autres que les clients de ligne de commande, les pilotes et les connecteurs optionnels), fonctionnent dans des infrastructures de Cloud public.
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 la plateforme. Mais à l’instar des architectures sans partage, Snowflake traite les requêtes à l’aide de clusters de calcul à traitement massivement parallèle (« massively parallel processing » ou MPP) où chaque nœud du cluster 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.
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.
Les services gérés dans cette couche comprennent :
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 à partir de laquelle il est possible d’accéder à tous les aspects de la gestion et de l’utilisation de Snowflake.
Des 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.
Des pilotes ODBC et JDBC qui peuvent être utilisés par d’autres applications (p. ex. Tableau) pour se connecter à Snowflake.
Des connecteurs natifs (p. ex. Python, Spark) qui peuvent être utilisés pour développer des applications de connexion à Snowflake.
Des connecteurs tiers qui peuvent être utilisés pour connecter des applications, telles que des outils ETL (p. ex. Informatica) et des outils BI (comme ThoughtSpot) à Snowflake.
Pour plus d’informations, voir Se connecter à Snowflake.