Cours
Qu'est-ce que le Snowflake ?
Si l'on me demandait de décrire Snowflake en aussi peu de mots que possible, je choisirais ceux-ci :
- Entrepôts de données
- Données à grande échelle
- Multi-Cloud
- Séparation
- Évolutif
- Flexible
- Simple
S'ils voulaient que je développe, j'enchaînerais les mots comme suit :
Snowflake est une plateforme cloud de données d'IA massivement populaire. Il se distingue de ses concurrents par sa capacité à traiter des données et des charges de travail à grande échelle plus rapidement et plus efficacement. Ses performances supérieures sont dues à son architecture unique, qui utilise des couches de stockage et de calcul séparées, ce qui lui permet d'être incroyablement flexible et évolutive. De plus, il s'intègre nativement avec plusieurs fournisseurs de cloud. Malgré ces caractéristiques avancées, il reste simple à apprendre et à mettre en œuvre.
S'ils demandent encore plus de détails, alors j'écrirai ce tutoriel. Si vous êtes totalement novice en la matière, notre cours d'introduction au Snowflake est un excellent point de départ.
Pourquoi utiliser Snowflake ?
Snowflake sert plus de 8 900 clients dans le monde entier et traite 3,9 milliards de requêtes chaque jour. Ce type de statistiques d'utilisation n'est en aucun cas une coïncidence.
Vous trouverez ci-dessous les meilleurs avantages de Snowflake qui ont tant d'attrait :
1. Architecture basée sur le cloud
Snowflake fonctionne dans les clouds, ce qui permet aux entreprises d'augmenter ou de réduire les ressources en fonction de la demande sans se soucier de l'infrastructure physique (matériel). La plateforme prend également en charge les tâches de maintenance de routine telles que les mises à jour logicielles, la gestion du matériel et l'optimisation des performances. Les entreprises sont ainsi déchargées du fardeau de la maintenance, ce qui leur permet de se concentrer sur l'essentiel : la valorisation des données.
2. Elasticité et évolutivité
Snowflake sépare les couches de stockage et de calcul, ce qui permet aux utilisateurs de faire évoluer leurs ressources informatiques indépendamment de leurs besoins de stockage. Cette élasticité permet de gérer efficacement diverses charges de travail avec des performances optimales et sans coûts inutiles.
3. Concurrence et performance
Snowflake gère facilement une forte concurrence : plusieurs utilisateurs peuvent accéder aux données et les interroger sans perte de performance.
4. Partage des données
Les garanties de sécurité de Snowflake permettent le partage des données entre d'autres organisations, départements internes, partenaires externes, clients ou autres parties prenantes. Aucun transfert de données complexe n'est nécessaire.
5. Voyage dans le temps
Snowflake utilise un terme fantaisiste, le "Time Travel", pour désigner le versionnage des données. Chaque fois qu'une modification est apportée à la base de données, Snowflake prend un instantané. Cela permet aux utilisateurs d'accéder à des données historiques à différents moments.
6. Rentabilité
Snowflake propose un modèle de paiement à l'usage en raison de sa capacité à faire évoluer les ressources de manière dynamique. Vous ne payez que ce que vous utilisez.
Tous ces avantages combinés font de Snowflake une plateforme cloud de données d'IA hautement désirable.
Voyons maintenant l'architecture sous-jacente de Snowflake qui permet de débloquer ces fonctionnalités.
Devenez ingénieur en données
Qu'est-ce qu'un entrepôt de données ?
Avant de nous plonger dans l'architecture de Snowflake, passons en revue les entrepôts de données pour nous assurer que nous sommes tous sur la même longueur d'onde.
Un entrepôt de données est un référentiel centralisé qui stocke de grandes quantités de données structurées et organisées provenant de diverses sources pour une entreprise. Différents personas (employés) dans les organisations utilisent les données à l'intérieur pour obtenir des informations différentes.
Par exemple, les analystes de données, en collaboration avec l'équipe marketing, peuvent effectuer un test A/B pour une nouvelle campagne marketing en utilisant le tableau des ventes. Les spécialistes des ressources humaines peuvent interroger les informations sur les salariés pour en suivre les performances.
Ce sont là quelques exemples de la manière dont les entreprises du monde entier utilisent les entrepôts de données pour stimuler la croissance. Mais sans une mise en œuvre et une gestion appropriées à l'aide d'outils tels que Snowflake, les entrepôts de données restent des concepts élaborés.
Vous pouvez en apprendre davantage sur le sujet grâce à notre cours Data Warehousing.
Architecture Snowflake
L'architecture unique de Snowflake, conçue pour des requêtes analytiques plus rapides, provient de la séparation des couches de stockage et de calcul. Cette distinction contribue aux avantages que nous avons mentionnés précédemment.
Couche de stockage
Dans Snowflake, la couche de stockage est un composant essentiel, qui stocke les données de manière efficace et évolutive. Voici les principales caractéristiques de cette couche :
- Basé sur le cloud : Snowflake s'intègre de manière transparente aux principaux fournisseurs de cloud, tels qu'AWS, GCP et Microsoft Azure.
- Format en colonnes : Snowflake stocke les données dans un format en colonnes, optimisé pour les requêtes analytiques. Contrairement aux formats traditionnels basés sur les lignes utilisés par des outils tels que Postgres, le format en colonnes est bien adapté à l'agrégation des données. Dans le stockage en colonnes, les requêtes n'accèdent qu'aux colonnes spécifiques dont elles ont besoin, ce qui les rend plus efficaces. En revanche, les formats basés sur les lignes nécessitent l'accès à toutes les lignes en mémoire pour des opérations simples telles que le calcul des moyennes.
- Micro-partitionnement : Snowflake utilise une technique appelée micropartitionnement qui permet de stocker les tableaux en mémoire par petits morceaux. Chaque bloc est généralement immuable et ne fait que quelques mégaoctets, ce qui rend l'optimisation et l'exécution des requêtes beaucoup plus rapides.
- Clonage sans copie : Snowflake dispose d'une fonctionnalité unique qui lui permet de créer des clones virtuels de données. Le clonage est instantané et ne consomme pas de mémoire supplémentaire jusqu'à ce que des modifications soient apportées à la nouvelle copie.
- Échelle et élasticité : La couche de stockage évolue horizontalement, ce qui signifie qu'elle peut gérer des volumes de données croissants en ajoutant des serveurs supplémentaires pour répartir la charge. De plus, cette mise à l'échelle se fait indépendamment des ressources informatiques, ce qui est idéal lorsque vous souhaitez stocker de grands volumes de données mais n'en analyser qu'une petite partie.
Examinons maintenant la couche de calcul.
Couche de calcul
Comme son nom l'indique, la couche de calcul est le moteur qui exécute vos requêtes. Elle travaille en collaboration avec la couche de stockage pour traiter les données et effectuer diverses tâches de calcul. Vous trouverez ci-dessous plus de détails sur le fonctionnement de cette couche :
- Entrepôts virtuels : Vous pouvez considérer les entrepôts virtuels comme des équipes d'ordinateurs (nœuds de calcul) conçues pour traiter les requêtes. Chaque membre de l'équipe traite une partie différente de la requête, ce qui rend l'exécution extrêmement rapide et parallèle. Snowflake propose des entrepôts virtuels de différentes tailles et, par conséquent, à différents prix (les tailles comprennent XS, S, M, L, XL).
- Architecture multi-clusters, multi-nœuds : La couche informatique utilise plusieurs grappes avec plusieurs nœuds pour une concurrence élevée, ce qui permet à plusieurs utilisateurs d'accéder aux données et de les interroger simultanément.
- Optimisation automatique des requêtes : Le système de Snowflake analyse toutes les requêtes et identifie les modèles à optimiser à l'aide des données historiques. Les optimisations courantes comprennent l'élagage des données inutiles, l'utilisation de métadonnées et le choix du chemin d'exécution le plus efficace.
- Cache des résultats : La couche de calcul comprend un cache qui stocke les résultats des requêtes fréquemment exécutées. Lorsque la même requête est exécutée à nouveau, les résultats sont renvoyés presque instantanément.
Ces principes de conception de la couche de calcul contribuent tous à la capacité de Snowflake à gérer des charges de travail différentes et exigeantes dans le cloud.
Couche de services cloud
La dernière couche est celle des services cloud. Comme cette couche s'intègre à chaque composant de l'architecture de Snowflake, il existe de nombreux détails sur son fonctionnement. En plus des caractéristiques liées aux autres couches, il a les responsabilités supplémentaires suivantes :
- Sécurité et contrôle d'accès : Cette couche applique des mesures de sécurité, notamment l'authentification, l'autorisation et le cryptage. Les administrateurs utilisent le contrôle d'accès basé sur les rôles (RBAC) pour définir et gérer les rôles et les autorisations des utilisateurs.
- Partage des données : Cette couche met en œuvre des protocoles de partage de données sécurisés entre différents comptes et même des organisations tierces. Les consommateurs de données peuvent accéder aux données sans avoir à les déplacer, ce qui favorise la collaboration et la monétisation des données.
- Prise en charge des données semi-structurées : Un autre avantage unique de Snowflake est sa capacité à gérer des données semi-structurées, telles que JSON et Parquet, bien qu'il s'agisse d'une plateforme de gestion d'entrepôt de données. Il peut facilement interroger des données semi-structurées et intégrer les résultats dans des tableaux existants. Cette flexibilité n'existe pas dans les autres outils de SGBDR.
Maintenant que nous avons une image de haut niveau de l'architecture de Snowflake, écrivons un peu de SQL sur la plateforme.
Configuration de Snowflake SQL
Snowflake possède sa propre version de SQL, appelée Snowflake SQL. La différence entre ce dialecte et les autres dialectes SQL est comparable à la différence entre les accents anglais.
La plupart des requêtes analytiques que vous effectuez dans des dialectes comme PostgreSQL ne changent pas, mais il y a quelques différences dans les commandes DDL (Data Definition Language).
Voyons maintenant comment exécuter des requêtes !
L'œil de neige : Interface web
Pour commencer avec Snowsight, rendez-vous sur la page d'essai gratuit de 120 jours de Snowflake et créez un compte. Saisissez vos informations personnelles et sélectionnez n'importe quel fournisseur de cloud répertorié. Vous bénéficiez ainsi d'une période d'essai gratuite de 120 jours, au lieu des 30 jours habituels que l'on trouve ailleurs. L'essai comprend également des crédits d'une valeur de 400 $.
Lorsque vous vous inscrivez pour un essai, il est recommandé aux utilisateurs de choisir AWS et la région US-Oregon West. Entre autres raisons, l'Oregon est l'une des régions où les coûts de l'infrastructure AWS sont les plus bas et, par conséquent, les crédits d'essai durent plus longtemps.
Après avoir vérifié votre adresse électronique, vous serez redirigé vers la page Feuilles de travail. Les feuilles de travail sont des environnements de codage interactifs où vous pouvez écrire, exécuter et visualiser les résultats de vos requêtes SQL.
Pour exécuter certaines requêtes, nous avons besoin d'une base de données et d'un tableau (nous n'utiliserons pas les données de l'échantillon dans Snowsight). Pour commencer, je vous suggère d'essayer de créer une nouvelle base de données (vous pourriez la nommer quelque chose comme test_db
) et un tableau nommé à l'aide d'un fichier CSV local. Vous pouvez télécharger le fichier CSV en exécutant le code de ce GitHub gist dans votre terminal.
Ensuite, vous serez dirigé vers une nouvelle feuille de calcul où vous pourrez exécuter n'importe quelle requête SQL. Je trouve que l'interface de la feuille de calcul est assez simple et très fonctionnelle. Prenez quelques minutes pour vous familiariser avec les panneaux, les boutons et leurs emplacements respectifs.
Conclusion et formation complémentaire
Ouf ! Nous avons commencé par des concepts simples, mais vers la fin, nous avons vraiment plongé dans les détails. Voilà l'idée que je me fais d'un tutoriel digne de ce nom.
Vous avez sans doute deviné que Snowflake ne se résume pas à ce que nous venons d'évoquer. En fait, la documentation de Snowflake comprend des guides de démarrage rapide qui durent 128 minutes ! Mais avant de vous y attaquer, je vous recommande de vous familiariser avec d'autres ressources. Que pensez-vous de ceux-ci ?
- Introduction au cours Snowflake
- Un webinaire sur la modernisation de l'analyse des ventes avec Snowflake.
- Analyse de données dans Snowflake à l'aide du code-along Python
- Guides d'utilisation officiels de Snowflake
- Snowflake Northstar pour en savoir plus sur la vision à long terme de Snowflake.
Merci de votre lecture !
Obtenez une certification pour le poste de Data Engineer de vos rêves
Nos programmes de certification vous aident à vous démarquer et à prouver aux employeurs potentiels que vos compétences sont adaptées à l'emploi.


Je suis un créateur de contenu en science des données avec plus de 2 ans d'expérience et l'un des plus grands followings sur Medium. J'aime écrire des articles détaillés sur l'IA et la ML dans un style un peu sarcastıc, car il faut bien faire quelque chose pour les rendre un peu moins ennuyeux. J'ai produit plus de 130 articles et un cours DataCamp, et un autre est en cours d'élaboration. Mon contenu a été vu par plus de 5 millions de personnes, dont 20 000 sont devenues des adeptes sur Medium et LinkedIn.