snowflake

Snowflake : tout savoir sur le “Data Cloud” et comment l’utiliser

Hossam M

Hossam M

6 min

Snowflake est une Data Warehouse entièrement basée sur le Cloud. Découvrez tout ce que vous devez savoir sur cette plateforme de plus en plus populaire dans la Data Science, et comment apprendre à l’utiliser grâce à une formation Snowflake.

À l’ère du Big Data, les Data Warehouses sont de plus en plus utilisées. Ces bases de données hautement parallèles, SQL ou NoSQL, sont spécialement conçues pour l’analyse de données.

Elles permettent d’importer des données en provenance de multiples sources et de les analyser. L’idée de Snowflake est de proposer une Data Warehouse directement sur le Cloud.

Qu'est-ce que Snowflake ?

Snowflake est une Data Warehouse entièrement et nativement conçue pour le Cloud. Elle est disponible sur Amazon Web Services et Microsoft Azure.

Il s’agit d’une base de données relationnelle en colonne avec exécution vectorisée. En d’autres termes, elle peut prendre en charge les tâches d’analyse de données les plus exigeantes.

Son architecture sépare le calcul du stockage, afin de permettre le scaling à tout moment même lorsque les requêtes sont en cours d’exécution. Les utilisateurs payent uniquement pour la puissance de calcul utilisée.

Grâce à sa technologie d’optimisation adaptative, Snowflake permet d’obtenir les meilleures performances possibles pour chaque requête de manière automatique. Nul besoin de gérer les paramètres de configuration manuellement.

En outre, son architecture de données partagée, multi-cluster, permet une concurrence illimitée. Cela signifie que de multiples clusters de calcul peuvent opérer simultanément sur les mêmes données sans dégrader les performances. La fonctionnalité de data warehouse virtuelle multi-cluster permet d’ailleurs d’adapter automatiquement les performances en fonction des besoins en concurrence.

L'architecture Snowflake : comment ça fonctionne ?

L’architecture Snowflake est divisée entre les instances virtuelles de calcul pour le computing, et un service de stockage pour le stockage des données persistantes.

Le répertoire de données central est accessible à partir de tous les noeuds de calcul de la Data Warehouse. Par ailleurs, Le traitement de données est assuré par des clusters de calcul de traitement massivement parallèle. Chaque noeud du cluster stocke une portion de l’ensemble de données localement.

Quand des données sont chargées sur Snowflake, elles sont réorganisées dans son format en colonne compressé. Les données sont accessibles par le biais de requêtes SQL.

Il s’agit d’une plateforme 100% Cloud, et il n’est donc pas possible de l’exécuter sur une infrastructure Cloud privé sur site ou hébergée. L’un des avantages est qu’aucune installation ou configuration ne sont nécessaires. La maintenance et les réglages sont pris en charge par Snowflake.

Il est possible de se connecter à Snowflake via son interface web, via le CLI SnowSQL, via les drivers ODBC et JDBC d’applications comme Tableau, les connecteurs natifs pour langages de programmation, ou les connecteurs tiers des outils BI et ETL.

architecture snowflake

Quelles sont ses fonctionnalités ?

La Data Warehouse Cloud de Snowflake est compatible avec la plupart des DDL et DML définis dans SQL:1999 et les extensions analytiques de SQL:2003. En termes de connectivité, on retrouve des connecteurs et des pilotes pour Python, Spark, Node.js, Go, .Net, JDBC, ODBC et l’extension open source dplyr-snowflakedb.

Les Warehouses virtuelles peuvent être contrôlées à partir du GUI ou de lignes de commandes. Il est possible de les créer, de les redimensionner, de les suspendre ou de les supprimer. Le redimensionnement peut être effectué pendant l’exécution d’une requête sans aucun downtime. Ceci s’avère très pratique pour accélérer une requête.

La plateforme est compatible avec une large variété de formats de données et de fichiers. Il est possible de charger des fichiers compressés, ou des formats tels que JSON, Avro, ORC, Parquet et XML. Les sources de données S3 et les fichiers locaux sont également pris en charge. Les données peuvent être partagées de manière sécurisée avec d’autres comptes Snowflake.

Les fonctionnalités de sécurité varient en fonction de l’édition. L’édition standard offre le chiffrement automatique de toutes les données, l’authentification multi-facteurs et le single sign-on.

Avec l’Enterprise Edition, viennent s’ajouter le ” re-keying ” périodique des données chiffrées. Enfin, l’édition Enterprise for Sensitive Data ajoute la compatibilité HIPAA et PCI DSS. Il est aussi possible de choisir où sont stockées les données pour se conformer au RGPD plus facilement.

Quels sont les avantages de Snowflake ?

Dans le passé, les données étaient stockées localement par les entreprises. Les ingénieurs et analystes de données exploitaient des logiciels open source comme Apache Hadoop pour le stockage et l’analyse de données.

Cependant, les Data Engineers capables de développer et de maintenir un tel système sont rares. Avec sa Data Warehouse sous forme de SaaS (logiciel en tant que service Cloud), Snowflake remédie à ce problème de pénurie.

Les utilisateurs n’ont pas besoin de se préoccuper de hardware physique ou virtuel, et n’ont pas besoin d’installer de logiciel. Les mises à jour et la maintenance sont assurées par les équipes de Snowflake.

Cette solution est par ailleurs plus rapide, plus simple d’utilisation et plus flexible que les Data Warehouses traditionnelles. De plus, cette plateforme n’est pas basée sur une plateforme logicielle déjà existante comme Hadoop.

Elle repose sur un moteur de base de donnée SQL flambant neuf, créé par Snowflake avec une architecture conçue pour le Cloud. Ainsi, n’importe quel ingénieur logiciel doté de connaissances en SQL peut comprendre et utiliser Snowflake.

Les concurrents et alternatives à Snowflake

Parmi les principaux concurrents de Snowflake, on compte Amazon Redshift, Google BigQuery et Microsoft Azure SQL Data Warehouse. Il s’agit des offres Data Warehouses des trois principaux fournisseurs Cloud.

Parmi ses autres rivaux, on retrouve aussi Teradata, Oracle Exadata, MarkLogic et SAP BW/4HANA. Ces solutions peuvent être installées sur le Cloud, mais aussi sur site.

Comment se former pour apprendre à l'utiliser ?

Snowflake offre de nombreux avantages, mais son utilisation peut se révéler complexe. En ce sens, la firme propose plusieurs tutoriels et vidéos permettant d’apprendre à maîtriser la plateforme. Certains sont généralistes et se destinent aux débutants, d’autres permettent de découvrir des fonctionnalités spécifiques plus en détail.

Vous pouvez aussi opter pour une formation Snowflake. DataScientest vous propose d’apprendre à maîtriser la Cloud Data Warehouse à travers notre formation Machine Learning Engineer et notre formation Data Engineer.

Qu’est-ce qui différencie Snowflake de ses concurrents ?

À une époque, le coût d’achat d’un service de télévision par câble signifiait que l’infrastructure et le contenu étaient compris dans une seule offre. Aujourd’hui, ces éléments sont distincts et les utilisateurs ont davantage de contrôle sur ce qu’ils utilisent et sur la façon dont ils le paient.

L’architecture de Snowflake permet une flexibilité similaire avec le Big Data. Cet outil de cloud computing dissocie les fonctions de stockage et de calcul, ce qui signifie que les entreprises qui ont des demandes de stockage élevées mais qui ont moins besoin de cycles CPU, ou vice versa, n’ont pas à payer pour un ensemble intégré qui les oblige à payer pour les deux. Ce point de différenciation est l’un des facteurs qui ont permis à ses co-fondateurs (Marcin Zukowski, Benoît Dageville et Thierry Cruanes) de permettre à plusieurs organisations d’économiser des millions de dollars tout en valorisant leur start up à plusieurs dizaines de milliards de dollars aujourd’hui depuis la levée de fonds en février 2020.

Les utilisateurs peuvent augmenter ou réduire leur capacité selon leurs besoins et ne paient que pour la charge de travail ainsi requise auprès de Snowflake. Le stockage est facturé en téraoctets stockés par mois. Quant au calcul, il est facturé à la seconde. En fait, l’architecture Snowflake se compose de trois couches, chacune étant évolutive indépendamment : stockage, calcul et services.

Couche de stockage des données

La couche de stockage de la base de données contient toutes les données chargées dans Snowflake, y compris les données structurées et semi-structurées. Snowflake propose une gestion automatique des tâches de stockage, allant de l’organisation des données à leur compression en passant par la structuration. De plus, le fonctionnement de cette couche de stockage des données est entièrement indépendant de celui de la couche de calcul.

Couche de calcul

La couche de calcul est constituée d’entrepôts virtuels qui exécutent les tâches de traitement des données nécessaires aux requêtes. Chaque entrepôt virtuel (ou cluster) peut accéder à toutes les données de la couche de stockage, puis fonctionner indépendamment, de sorte que les entrepôts ne partagent pas ou ne se disputent pas les ressources de calcul. Cela permet une mise à l’échelle automatique sans interruption, ce qui signifie que les ressources de calcul évoluent ou non durant l’exécution des requêtes et n’ont pas par conséquent besoin de faire une redistribution ou un rééquilibrage des données dans la couche de stockage des données.

Couche des services cloud

La couche des services cloud utilise ANSI SQL et coordonne l’ensemble du système. Il élimine la nécessité d’une gestion et d’un réglage manuels de l’entrepôt de données. Les services de cette couche comprennent l’authentification, la gestion des infrastructures et des métadonnées, l’analyse et l’optimisation des requêtes ainsi que le contrôle d’accès.

Vous savez tout sur Snowflake. Découvrez notre dossier complet sur Docker, un autre outil clé du Big Data, et notre dossier sur le Machine Learning.