Retour aux articles
  • 25.04.2023

Qu’est ce que Snowflake ?

Qu’est ce que Snowflake ?

Développé en 2012, Snowflake est un SaaS (software as a service) entièrement géré qui fournit une plateforme unique pour l’entreposage de données, les data lakes, la data engineering, la data science, le développement d’applications de données, ainsi que le partage et la consommation sécurisés de données partagées en temps réel. Snowflake propose des fonctionnalités prêtes à l’emploi telles que la séparation du stockage et du calcul, le calcul évolutif à la volée, le partage des données, le clonage des données et la prise en charge d’outils tiers afin de répondre aux besoins exigeants des entreprises en pleine croissance.

Qu’est-ce qui compose la plateforme Snowflake ?

La conception de Snowflake repose sur trois composants principaux. Ils constituent le fondement de la plateforme de données dans le cloud de Snowflake :

 

Les services cloud

Snowflake utilise ANSI SQL pour les services cloud, ce qui permet aux utilisateurs d’optimiser leurs données et de gérer leur infrastructure. Snowflake s’occupe de la sécurité et du cryptage des données stockées. Elle maintient de solides certifications d’entreposage de données telles que PCI DSS et HIPAA. Les services comprennent l’authentification, la gestion de l’infrastructure, l’analyse et l’optimisation des requêtes, la gestion des métadonnées et le contrôle d’accès.

 

Traitement des requêtes

La couche de calcul de Snowflake est constituée d’entrepôts de données virtuels dans le cloud qui vous permettent d’analyser les données par le biais de requêtes. Chaque entrepôt virtuel Snowflake est un cluster indépendant qui n’entre pas en compétition pour les ressources informatiques et n’affecte pas les performances des autres, ce qui signifie que la concurrence de la charge de travail n’est jamais un problème.

 

Stockage de la base de données

Une base de données Snowflake est l’endroit où les ensembles de données structurées et semi-structurées d’une organisation sont stockés pour être traités et analysés. Snowflake gère automatiquement toutes les parties du processus de stockage des données, y compris l’organisation, la structure, les métadonnées, la taille des fichiers, la compression et les statistiques.

Quels sont les avantages de Snowflake pour votre entreprise ?

Snowflake a été conçu spécifiquement pour le cloud et pour résoudre de nombreux problèmes liés aux anciens entrepôts de données matériels, tels que l’évolutivité limitée, les problèmes de transformation des données et les retards ou les échecs dus à des volumes de requêtes élevés. Voici cinq façons dont Snowflake peut profiter à votre entreprise.

 

Performance et rapidité

La nature élastique du cloud signifie que si vous souhaitez charger des données plus rapidement ou exécuter un volume élevé de requêtes, vous pouvez faire évoluer votre entrepôt virtuel pour tirer parti de ressources de calcul supplémentaires. Ensuite, vous pouvez réduire l’entrepôt virtuel et ne payer que pour le temps utilisé.

 

Stockage et prise en charge des données structurées et semi-structurées

Vous pouvez combiner des données structurées et semi-structurées à des fins d’analyse et les charger dans la base de données cloud sans qu’il soit nécessaire de les convertir ou de les transformer en un schéma relationnel fixe. Snowflake optimise automatiquement la façon dont les données sont stockées et interrogées.

 

Disponibilité et sécurité

Snowflake est distribué à travers les zones de disponibilité de la plateforme sur laquelle il fonctionne – AWS ou Azure – et est conçu pour fonctionner en continu et tolérer les défaillances des composants et du réseau avec un impact minimal pour les clients. Il est certifié SOC 2 Type II, et des niveaux de sécurité supplémentaires – tels que la prise en charge des données PHI pour les clients HIPAA, et le cryptage de toutes les communications réseau – sont disponibles.

 

Partage des données en toute transparence

L’architecture de Snowflake permet le partage des données entre les utilisateurs de Snowflake. Elle permet également aux organisations de partager des données de manière transparente avec n’importe quel consommateur de données – qu’il soit client de Snowflake ou non – par le biais de comptes de lecteurs qui peuvent être créés directement à partir de l’interface utilisateur. Cette fonctionnalité permet au fournisseur de créer et de gérer un compte Snowflake pour un consommateur.

 

Concurrence et accessibilité

Avec un entrepôt de données traditionnel et un grand nombre d’utilisateurs ou de cas d’utilisation, vous pouvez rencontrer des problèmes de concurrence (tels que des retards ou des échecs) lorsque trop de requêtes se disputent les ressources.

Snowflake résout les problèmes de concurrence grâce à son architecture multicluster unique : Les requêtes d’un entrepôt virtuel n’affectent jamais les requêtes d’un autre entrepôt virtuel, et chaque entrepôt virtuel peut évoluer à la hausse ou à la baisse en fonction des besoins. Les data scientists et data analysts peuvent obtenir ce dont ils ont besoin, quand ils en ont besoin, sans attendre que les autres tâches de chargement et de traitement soient terminées.

Quels sont les cas d’utilisation les plus connus de Snowflake ?

Les cas d’utilisation de Snowflake sont très nombreux et continuent d’évoluer à un rythme important : applications analytiques, Data lake, Data warehouse, Data Science, Data Applications, en mode batch, micro-batch ou temps réel.

 

Applications analytiques

L’architecture initiale de Snowflake est basée sur le stockage et le traitement des données via SQL. Il est donc naturel de trouver les applications analytiques comme le cas d’utilisation le plus répandu.

Chargement d’un très grand volume de données, transformation des données et fourniture d’un ensemble de tables et de vues pour un outil avancé de reporting ou d’analyse.

Snowflake permet aux utilisateurs de stocker, de traiter et d’analyser des quantités pratiquement illimitées de données. En effet, les limites matérielles inhérentes aux autres bases de données sont largement repoussées et il n’est pas rare de diviser les temps de réponse par des multiples de 10.

 

Data Lake / Data Warehouse

Le très faible coût de stockage des données, l’absence de hiérarchisation des données, au sein de Snowflake et sa capacité à traiter de gros volumes de données lui permettent de mettre en œuvre sur la même plateforme ces deux cas d’usage qui sont souvent traités au sein de plateformes différentes, utilisant des technologies différentes.

 

Data Science

La mise en œuvre des cas d’utilisation de la data science peut se faire par le biais de différentes approches :

Snowpark, un environnement d’exécution de code externe pour traiter les données stockées dans Snowflake (ScalaJavaPython).

Utilisation d’une plateforme externe fortement intégrée à Snowflake (comme Dataiku ou Datarobot)

Exécution de modèles à partir de la plateforme via l’utilisation de fonctions définies par l’utilisateur (UDF).

 

Partage des données

Très rapidement, Snowflake a proposé un service de partage de données qui permet à deux déploiements de Snowflake provenant de deux organisations différentes de partager des données en temps réel et en toute sécurité au sein de la même plateforme Snowflake, sans avoir à gérer des flux d’échange de données inter-organisations coûteux et complexes à maintenir.

Les données peuvent être partagées publiquement et monétisées sur la data marketplace

 

Temps réel

Le temps réel est disponible à la fois lors de l’ingestion de données via la fonctionnalité Snowpipe qui permet d’intégrer des données dès que leur présence est détectée sur un système de stockage de fichiers en cloud, ainsi que sous la forme d’une API qui permet d’interroger les données présentes au sein de la plateforme en REST. Un connecteur Kafka est également disponible.