Qu'est-ce que Snowflake ?

Snowflake est un entrepôt de données MPP cloud entièrement géré qui permet aux utilisateurs d'exploiter autant d'entrepôts virtuels qu'ils le souhaitent pour paralléliser et isoler les performances de requêtes individuelles. Snowflake s'exécute dans le cloud AWS et sépare le stockage du calcul. De cette façon, de nombreux entrepôts peuvent accéder simultanément à la même source de données, ce qui permet une concurrence très élevée. Snowflake permet aux utilisateurs d'interagir avec l'entrepôt de données via un navigateur Internet, la ligne de commande, une plateforme d'analyse, ou via ODBC, JDBC ou d'autres pilotes compatibles avec Snowflake.

Lancé par un groupe d'experts en entrepôt de données en 2014 après deux ans en mode dissimulé, Snowflake est relativement jeune sur le marché des entrepôt de données. Son architecture a été bien décrite dans un article du SIGMOD 2016.

Raisons d'opter pour Snowflake

Performance flexible

Snowflake permet aux utilisateurs de créer des « entrepôts virtuels » (clusters de calcul MPP) de diverses tailles (qui peuvent être adaptées en cours d'opération) en quelques minutes à peine afin de répondre à toute charge de travail. Les requêtes sont isolées, elles exploitent donc les ressources de l'entrepôt virtuel qui les exécute, et les clients ne paient que pour le temps de calcul utilisé. Cela signifie que les organisations peuvent adapter et diviser les ressources de calcul en fonction des requêtes exécutées. Snowflake est également flexible en termes de types de données ; les données semi-structurées peuvent être stockées et traitées aux côtés des données structurées.

Évolutif

Snowflake est fondé sur S3, qui adapte automatiquement les ressources de stockage en fonction du volume de données. Cela signifie que les utilisateurs ne doivent jamais s'inquiéter d'atteindre une limite d'espace aléatoire. Les ressources de calcul de Snowflake sont entièrement hébergées dans le cloud, ce qui permet aussi de les adapter afin d'éviter tout problème de performance en cas d'augmentation de la complexité ou du nombre de requêtes.

Simultanéité inégalée

Snowflake permet à tous les utilisateurs de créer un nombre illimité d'entrepôts virtuels afin d'isoler les requêtes des autres utilisateurs et outils. Pour les organisations qui utilisent Looker, ou d'autres applications avec un haut niveau potentiel de simultanéité, il existe aussi une fonction d'entrepôt multi-clusters qui permet d'automatiser de passage d'un seul entrepôt sur plusieurs clusters. 

Entièrement géré

Snowflake a simplifié le concept de gestion des clusters et nœuds de base de données sur sa plateforme. Cela signifie que la plupart des aspects de gestion d'une base de données (auxquels il faut traditionnellement consacrer des ressources DevOps), comme l'optimisation, la protection des données, la surveillance de l'infrastructure et le chiffrement, sont gérés pour vous par la plateforme Snowflake.

Dans quels cas d'utilisation Snowflake est-il idéal ?

Organisations avec demandes rigoureuses en matière de simultanéité

L'entrepôt virtuel de Snowflake fonctionne en tant que clusters de calcul MPP indépendants, ce qui permet aux organisations de consacrer un entrepôt virtuel pour le traitement des processus ETL et un autre pour les requêtes ad hoc. Avec ce système, les données ne doivent pas être transférées et les requêtes exécutées sur un entrepôt virtuel n'ont aucun impact sur les autres entrepôts virtuels. La fonction d'entrepôt multi-clusters de Snowflake peut automatiquement adapter l'ampleur d'un entrepôt virtuel (en ajoutant des nouveaux clusters de calcul) afin d'assurer une performance constante à tout niveau de simultanéité.

Par ailleurs, pour les usages d'analytique embarquée, qui doivent pouvoir traiter des centaines ou des milliers de requêtes simultanées, les entrepôts virtuels de Snowflake offrent un moyen efficace de soutenir autant d'utilisateurs via des entrepôts multi-clusters qui ajustent automatiquement le nombre de clusters de calcul en fonction de la simultanéité.

Entreprise avec d'énormes données en croissance

Snowflake est une excellente solution pour les organisations désireuses de développer rapidement leur pile de données avec un investissement minimal. Comme Snowflake utilise S3 pour le stockage, l'espace disponible est pratiquement illimité. L'architecture de Snowflake répartit le stockage et le calcul de sorte à ce que chaque entrepôt virtuel ait accès aux mêmes données, et le coût de stockage des données est comparable à celui de S3.

Analystes qui travaillent avec des données semi-structurées

Snowflake offre toute une série de fonctions pour le travail avec des données semi-structurées et avec divers formats de données, dont JSON, Avro, ORC, Parquet et XML. Snowflake offre une flexibilité avancée en termes de stockage et de requête des données semi-structurées.

La capacité de Snowflake à stocker plusieurs types de données dans une valeur de donnée VARIANT, un format capable de stocker plusieurs types de données sans devoir changer la structure vue par l'utilisateur, illustre bien la compatibilité de Snowflake avec les données semi-structurées.

Entreprises désireuses de partager ou de monétiser leurs données

Snowflake a lancé le Partage de données, qui permet aux entreprises de partager leurs données avec les clients, partenaires ou fournisseurs en les chargeant dans Snowflake et en autorisant l'accès à toute partie participante. Contrairement aux méthodes de partage de données traditionnelles, les données ne doivent pas être déstructurées, déplacées ou transmises. Le fournisseur des données autorise tout simplement l'accès aux consommateurs (clients/partenaires) via un objet de base de données spécialisé. Au fur et à mesure de l'intégration des nouveaux consommateurs, le fournisseur de données peut continuer à partager les mêmes données, ou certains sous-ensembles de données, avec un minimum d'effort et selon la norme SQL.

Avant de vous décider

Tarification

Snowflake, comme de nombreux entrepôts de données MPP cloud, offrent deux options de paiement : à la demande et selon la capacité. La tarification à la demande permet aux utilisateurs de payer selon l'usage, sans engagement à long terme. Pour les organisations qui souhaitent bénéficier d'une remise, l'option de paiement selon la capacité offre un tarif réduit déterminé par la capacité sélectionnée.

Snowflake offre aussi quatre éditions, chacune avec des fonctions et SLA différents. Ces éditions sont les suivantes :

Pour en savoir plus sur la tarification de Snowflake, veuillez consulter leur page des tarifs.

Notez aussi que la tarification de Snowflake peut varier en fonction de l'endroit de l'installation.

Architecture de Snowflake

Snowflake utilise une architecture multi-cluster à données partagées brevetée, ce qui fait de cet entrepôt de données une solution unique parmi les fournisseurs de systèmes MPP cloud. « Multi-clusters » signifie que Snowflake est capable d'exploiter plusieurs moteurs de calcul individuels, ou entrepôts virtuels, au-dessus de la couche de stockage ordinaire.

L'architecture de Snowflake se compose de deux niveaux :

  • Stockage de données - stocke les données des tables et les données temporaires associées aux requêtes
  • Calcul - moteurs de calcul que les utilisateurs peuvent exploiter
  • Services - le « cerveau » de gestion de Snowflake, responsable pour la sécurité, les métadonnées, l'optimisation, la gestion des ressources et bien plus encore

Stockage de données

Snowflake utilise Amazon S3 comme référentiel de données partagées pour sa plateforme en raison de la facilité d'utilisation, de la disponibilité et de la durabilité de S3. Snowflake utilise S3 pour stocker les données des tables et les données temporaires associées aux grandes requêtes. La sauvegarde des données temporaires dans S3 permet à Snowflake d'exécuter ces grandes requêtes sans afficher d'erreur « mémoire insuffisante » ou « espace disque insuffisant ».

Entrepôts virtuels

Afin de traiter les requêtes, Snowflake permet à l'utilisateur d'exploiter les clusters supplémentaires d'Amazon EC2, appelés des entrepôts virtuels.

Les éléments EC2 qui constituent l'entrepôt virtuel sont indépendants de l'utilisateur, et ce dernier ne peut pas contrôler le nombre d'éléments contenus dans chaque entrepôt virtuel. Au lieu de cela, l'utilisateur peut sélectionner des entrepôts virtuels de différentes tailles.

Les entrepôts virtuels sont des mécanismes uniquement destinés au calcul, qui peuvent être créés, supprimés et ajustés à la demande, et Snowflake encourage ses utilisateurs à fermer leurs entrepôts virtuels lorsqu'ils ne traitent aucune requête (afin de ne pas les facturer). Cette architecture renforce l'élasticité de Snowflake et lui permet d'ajuster l'ampleur des requêtes en fonction de la demande.

Chaque entrepôt virtuel opère en tant que cluster de calcul totalement indépendant, sans aucun partage de requêtes ou de ressources entre eux. Les requêtes ne peuvent donc être traitées que par un seul entrepôt virtuel, sans aucun partage, ce qui assure l'excellente isolation de performance entre les entrepôts virtuels. Le véritable potentiel de Snowflake entre en jeu lorsque plusieurs entrepôts virtuels sont utilisés pour exécuter différentes tâches en même temps, avec plusieurs requêtes simultanées sur chacun. Grâce à la fonction d'« entrepôt multi-clusters », les entrepôts virtuels peuvent être configurés pour s'adapter automatiquement en fonction de la simultanéité des requêtes.

Services

La couche de services cloud de Snowflake se charge de la gestion et de l'administration de la plateforme Snowflake. Contrairement aux ressources de calcul, qui sont conçues pour s'adapter à la demande, la couche de services de Snowflake est toujours active afin de traiter les processus de gestion pour plusieurs entrepôts virtuels.

La couche de services de Snowflake est responsable d'une série de processus qui comprend la gestion et l'optimisation des requêtes, la sécurité, la gestion des utilisateurs et la gestion des métadonnées.

Types de données

Snowflake peut intégrer des données tabulaires et des données semi-structurées issues de fichiers textes (délimités), JSON, Avro, Parquet, XML et de formats en colonnes.

Contrairement à de nombreuses autres bases de données, les exigences de pré-traitement, d'aplatissement ou de dénormalisation des jeux de données avant le chargement sont moins problématiques dans Snowflake. Cet avantage est particulièrement vrai pour les données semi-structurées, car Snowflake répartit automatiquement les données en colonnes au chargement. La compression est automatiquement effectuée lors du chargement des données dans Snowflake.

Taille maximale de données recommandée

Comme Snowflake est bâti sur S3, qui adapte simplement le stockage en fonction du volume de données, et comme l'architecture de Snowflake sépare le stockage et le calcul, l'architecture ne limite pas la quantité de données qui peut être stockée et traitée.

Installation de Snowflake

Installation de Snowflake

Grâce à l'abstraction du stockage dans le cloud, l'adoption de Snowflake est simplifiée. Comme Snowflake exploite les ressources AWS, les clients peuvent tout simplement stocker leurs données dans un compartiment Amazon S3 afin de les charger dans Snowflake.

Cela signifie que si vous stockez déjà vos données dans S3, vous n'aurez plus qu'à indiquer votre référentiel S3 à Snowflake afin de charger vos données (un processus qui ne prend que quelques minutes) et de commencer à exécuter des requêtes.

Processus pour nouvelles données

Il existe plusieurs manières de charger des nouvelles données dans Snowflake :

  • L'interface Web est un outil pratique qui permet de charger rapidement des quantités limitées de données dans un tableau depuis quelques fichiers plats.
  • L'interface de ligne de commande SnowSQL vous permet de charger des données :
    • Depuis un compartiment Amazon S3 externe, via un processus à 4 étapes (préparation des fichiers, indexation des données, copie des fichiers dans des tableaux et vérification des données chargées) ;
    • Les fichiers stockés dans S3 peuvent être dans n'importe quel format compatible, dont CSV et JSON.

Snowflake offre aussi le chargement et la requête parallèles de données, associés à l'option d'utiliser plusieurs clusters de calcul afin de créer un environnement ultra-performant  contournant les problèmes traditionnellement associés à la simultanéité.

Si vous avez besoin d'aide pour créer les flux d'alimentation ETL, il est possible de faire appel à un fournisseur ETL qui offre une intégration avec Snowflake. Veuillez contacter Looker pour de plus amples informations.

Maintenance

Snowflake offre un outil de surveillance et des tableaux qui indiquent la charge de l'entrepôt sur une période de deux semaines. Ce tableau permet à l'utilisateur de décider de créer un entrepôt supplémentaire afin de rediriger les requêtes en attente ou de modifier l'entrepôt existant en ajoutant des clusters pour traiter plus de requêtes en même temps. Il est également possible de consulter les chemins et processus d'exécution des requêtes.

Protection et disponibilité des données

Comme Snowflake utilise S3 comme couche de stockage, les données de Snowflake bénéficient donc de toute la résistance du système. La plateforme Snowflake améliore aussi la résistance de S3 en ajoutant des fonctions telles que le voyage dans le temps (qui permet aux utilisateurs d'accéder à toutes les données historiques d'une période déterminée) et le dispositif de sécurité (qui protège les données en cas de panne de matériel ou de faille de sécurité). Les fichiers et le trafic réseau sont automatiquement et intégralement chiffrés par défaut, en transit comme au repos. Snowflake est également conforme aux normes SOC 2, PCI et HIPAA.

Pour les clients qui disposent d'exigences de sécurité supplémentaires, Snowflake offre des ressources de calcul dédiées et des fonctions de sécurité supplémentaires. La plateforme Snowflake intègre des outils de gestion d'information et d'événements de sécurité afin d'aider les utilisateurs à identifier toute activité suspecte et à avertir les clients.

Prenez goût à l'analytique

Business intelligence, analyse de big data ou vue client à 360° :
quels que soient vos besoins, Looker peut vous aider. Parlez à nos experts en données.

Demander une démo