Examen Snowflake: un entrepôt de données amélioré dans le cloud

Les entrepôts de données, également appelés entrepôts de données d'entreprise (EDW), sont des bases de données SQL ou NoSQL hautement parallèles conçues pour l'analyse. Ils vous permettent d'importer des données à partir de plusieurs sources et de générer rapidement des rapports complexes à partir de pétaoctets de données.

La différence entre un entrepôt de données et un magasin de données est que, généralement, un magasin de données est limité à un seul sujet et à un seul service. La différence entre un entrepôt de données et un lac de données réside dans le fait qu'un lac de données stocke les données dans leur format naturel, souvent des objets blob ou des fichiers, tandis qu'un entrepôt de données stocke les données sous forme de base de données.

Flocon de neige en bref

Snowflake est un entrepôt de données SQL ANSI entièrement relationnel qui a été entièrement conçu pour le cloud. Son architecture sépare le calcul du stockage afin que vous puissiez augmenter et réduire à la volée, sans retard ni interruption, même pendant l'exécution des requêtes. Vous obtenez les performances dont vous avez besoin exactement quand vous en avez besoin et vous ne payez que pour le calcul que vous utilisez. Snowflake fonctionne actuellement sur Amazon Web Services et Microsoft Azure.

     Snowflake est une base de données entièrement en colonnes avec une exécution vectorisée, ce qui la rend capable de traiter même les charges de travail analytiques les plus exigeantes. L'optimisation adaptative de Snowflake garantit que les requêtes obtiennent automatiquement les meilleures performances possibles, sans index, clés de distribution ou paramètres de réglage à gérer.

     Snowflake peut prendre en charge une simultanéité illimitée grâce à son architecture de données partagée multi-cluster unique. Cela permet à plusieurs clusters de calcul de fonctionner simultanément sur les mêmes données sans dégrader les performances. Snowflake peut même évoluer automatiquement pour gérer les différentes demandes d'accès concurrentiel grâce à sa fonction d'entrepôt virtuel multi-cluster, ajoutant de manière transparente des ressources de calcul pendant les périodes de pointe de charge et diminuant lorsque les charges diminuent.

Concurrents de flocon de neige

Les concurrents de Snowflake dans le cloud incluent Amazon Redshift, Google BigQuery et Microsoft Azure SQL Data Warehouse. D'autres concurrents majeurs, tels que Teradata, Oracle Exadata, MarkLogic et SAP BW / 4HANA, peuvent être installés dans le cloud, sur site et sur des appliances.

Amazon Redshift

Amazon Redshift est un entrepôt de données rapide et évolutif qui vous permet d'analyser toutes vos données dans votre entrepôt de données et votre lac de données Amazon S3. Vous interrogez Redshift en utilisant SQL. Un entrepôt de données Redshift est un cluster qui peut automatiquement déployer et supprimer de la capacité avec une charge de requête simultanée. Cependant, tous les nœuds de cluster sont provisionnés dans la même zone de disponibilité.

Entrepôt de données Microsoft Azure SQL

Microsoft Azure SQL Data Warehouse est un entrepôt de données basé sur le cloud qui utilise le moteur Microsoft SQL et MPP (traitement massivement parallèle) pour exécuter rapidement des requêtes complexes sur des pétaoctets de données. Vous pouvez utiliser Azure SQL Data Warehouse en tant que composant clé d'une solution Big Data en important du Big Data dans SQL Data Warehouse avec de simples requêtes PolyBase T-SQL, puis en utilisant la puissance de MPP pour exécuter des analyses hautes performances.

Azure SQL Data Warehouse est disponible dans 40 régions Azure à travers le monde, mais un serveur d'entrepôt donné n'existe que dans une seule région. Vous pouvez faire évoluer les performances de votre entrepôt de données à la demande, mais toutes les requêtes en cours d'exécution seront annulées et restaurées.

Google BigQuery

Google BigQuery est un entrepôt de données cloud sans serveur, hautement évolutif et économique avec des requêtes SIG, un moteur de BI en mémoire et un apprentissage automatique intégré. BigQuery exécute des requêtes SQL rapides sur des gigaoctets à pétaoctets de données et facilite l'accès public ou des ensembles de données commerciales avec vos données.

Vous ne pouvez définir l'emplacement géographique d'un ensemble de données BigQuery qu'au moment de sa création. Toutes les tables référencées dans une requête doivent être stockées dans des ensembles de données au même emplacement. Cela s'applique également aux ensembles de données externes et aux compartiments de stockage. Il existe des restrictions supplémentaires concernant l'emplacement des données externes de Google Cloud Bigtable. Par défaut, les requêtes s'exécutent dans la même région que les données.

Les emplacements peuvent être des endroits spécifiques, tels que la Virginie du Nord, ou de grandes zones géographiques, telles que l'UE ou les États-Unis. Pour déplacer un ensemble de données BigQuery d'une région à une autre, vous devez l'exporter vers un bucket Google Cloud Storage au même emplacement que votre ensemble de données, copier le bucket vers le nouvel emplacement et le charger dans BigQuery au nouvel emplacement.

Architecture de flocon de neige

Snowflake utilise des instances de calcul virtuelles pour ses besoins de calcul et un service de stockage pour le stockage persistant des données. Snowflake ne peut pas être exécuté sur des infrastructures de cloud privé (sur site ou hébergées).

Il n'y a aucune installation à effectuer et aucune configuration. Tout l'entretien et le réglage sont gérés par Snowflake.

Snowflake utilise un référentiel de données central pour les données persistantes accessible depuis tous les nœuds de calcul de l'entrepôt de données. Dans le même temps, Snowflake traite les requêtes à l'aide de clusters de calcul MPP (traitement massivement parallèle) où chaque nœud du cluster stocke localement une partie de l'ensemble de données.

Lorsque les données sont chargées dans Snowflake, Snowflake réorganise ces données dans son format interne compressé en colonnes. Les objets de données internes ne sont accessibles que via des requêtes SQL. Vous pouvez vous connecter à Snowflake via son interface utilisateur Web, via une CLI (SnowSQL), via des pilotes ODBC et JDBC d'applications telles que Tableau, via des connecteurs natifs pour les langages de programmation et via des connecteurs tiers pour les outils BI et ETL.

Flocon de neige

Caractéristiques du flocon de neige

Sécurité et protection des données. Les fonctionnalités de sécurité offertes dans Snowflake varient selon l'édition. Même l'édition standard offre un cryptage automatique de toutes les données et prend en charge l'authentification multifacteur et la connexion unique. L'ajout d'Enterprise ajoute la recréation périodique des données chiffrées, et l'édition Enterprise for Sensitive Data ajoute la prise en charge de HIPAA et PCI DSS. Vous pouvez choisir où vos données sont stockées, ce qui vous permet de vous conformer aux réglementations GDPR de l'UE.

Prise en charge SQL standard et étendue. Snowflake prend en charge la plupart des DDL et DML définis dans SQL: 1999, ainsi que les transactions, certaines fonctionnalités SQL avancées et certaines parties des extensions analytiques SQL: 2003 (fonctions de fenêtrage et ensembles de regroupement). Il prend également en charge les vues latérales et matérialisées, les fonctions d'agrégation, les procédures stockées et les fonctions définies par l'utilisateur.

Outils et interfaces. Notamment, Snowflake vous permet de contrôler vos entrepôts virtuels à partir de l'interface graphique ou de la ligne de commande. Cela inclut la création, le redimensionnement (sans temps d'arrêt), la suspension et la suppression des entrepôts. Le redimensionnement d'un entrepôt pendant l'exécution d'une requête est très pratique, en particulier lorsque vous devez accélérer une requête qui prend trop de temps. À ma connaissance, cela n'est implémenté dans aucun autre logiciel EDW.

Connectivité Snowflake possède des connecteurs et / ou des pilotes pour Python, Spark, Node.js, Go, .Net, JDBC, ODBC et dplyr-snowflakedb, une extension de package dplyr open source maintenue sur GitHub.

Importation et exportation de données. Snowflake peut charger une large gamme de données et de formats de fichiers. Cela inclut les fichiers compressés; fichiers de données délimités; Formats JSON, Avro, ORC, Parquet et XML; Sources de données Amazon S3; et les fichiers locaux. Il peut effectuer le chargement et le déchargement en masse dans et hors des tables, ainsi que le chargement en masse continu à partir de fichiers.

Partage de données. Snowflake prend en charge le partage de données en toute sécurité avec d'autres comptes Snowflake. Ceci est simplifié par l'utilisation de clones de table sans copie.

Flocon de neige

Tutoriels de flocon de neige

Snowflake propose de nombreux tutoriels et vidéos. Certains vous aident à démarrer, certains explorent des sujets spécifiques et certains présentent des fonctionnalités.

Je recommande de parcourir la présentation pratique décrite dans le Guide pratique du laboratoire pour l'essai gratuit de Snowflake.) Cela m'a pris moins d'une heure et coûte moins de cinq crédits. Cela a laissé 195 crédits supplémentaires dans l'essai gratuit, ce qui devrait être suffisant pour importer des données réelles et tester certaines requêtes.

Le didacticiel fait un usage intensif des feuilles de calcul Snowflake, un moyen pratique d'exécuter des commandes et SQL dans l'interface utilisateur Web. Il couvre, entre autres, le chargement des données; interrogation, mise en cache des résultats et clonage; données semi-structurées; et le voyage dans le temps pour restaurer des objets de base de données.

Dans l'ensemble, je trouve Snowflake assez impressionnant. Je m'attendais à ce que ce soit maladroit, mais ce n'est pas du tout le cas. En fait, bon nombre de ses opérations d'entrepôt de données vont beaucoup plus vite que prévu, et quand il y en a un qui semble explorer, je peux intervenir et agrandir l'entrepôt de données sans interrompre ce qui se passe.

Une grande partie de la mise à l'échelle peut être automatisée. Lors de la création d'un entrepôt de données (voir capture d'écran ci-dessus), il existe une option pour autoriser plusieurs clusters, une option pour définir la politique de mise à l'échelle, une option pour la suspension automatique et une option pour la reprise automatique. La période de suspension automatique par défaut est de 10 minutes, ce qui empêche l'entrepôt de consommer des ressources lorsqu'il est inactif plus longtemps que cela. La reprise automatique est presque instantanée et se produit chaque fois qu'il y a une requête sur l'entrepôt.

Étant donné que Snowflake offre un essai gratuit de 30 jours avec un crédit de 400 $ et qu'il n'est pas nécessaire d'installer quoi que ce soit, vous devriez être en mesure de déterminer si Snowflake conviendra à vos besoins sans aucune dépense d'argent. Je recommanderais de lui donner un tour.

-

Coût: 2 USD / crédit plus 23 USD / To / mois de stockage, forfait standard, stockage prépayé. Un crédit équivaut à un nœud * heure, facturé à la seconde. Les plans de niveau supérieur sont plus chers.

Plateformes: Amazon Web Services, Microsoft Azure