Snowflake étend les fonctionnalités clés de son data warehouse cloud
Lors du Snowflake Summit 2022, le fournisseur a dévoilé un ensemble de fonctionnalités pour renforcer la pertinence de son data warehouse cloud, dont le support du projet open source Apache Iceberg et son moteur HTAP Unistore.
En 2020, Snowflake a annoncé une feuille de route conséquente. Deux ans plus tard, le fournisseur d’un data warehouse multicloud a presque lancé toutes les fonctionnalités listées. Lors du Snowflake Summit 2022, il a remis le couvert pour au moins deux ans.
Il y a d’abord des optimisations de performance, une des promesses originelles du fournisseur. Sur AWS, Snowflake a présenté de nouvelles instances basées sur les processeurs Graviton 3. Les performances seraient environ 10 % supérieures aux instances basées sur les processeurs Intel couramment déployées sur ce cloud. Surtout, le fournisseur a de nouveau optimisé la compression du stockage de 30 %. La latence d’ingestion des données a été réduite de 50 %, tandis que la latence de la réplication aurait baissé de 55 %.
Puis, il y a la nécessité pour Snowflake de proposer une meilleure cohérence des données tout en assurant un haut niveau de performance sur la majorité des formats de données, lui qui provient du monde relationnel.
Apache Iceberg : une meilleure cohérence pour les traitements analytiques
En réponse à cette demande, Snowflake prévoit de supporter nativement le format de table Apache Iceberg, qui sera prochainement en préversion privée. Cette technologie open source, concurrente à Delta Lake – développée par Databricks – (un format de table que Snowflake supporte dans ses tables externes) doit faciliter les traitements analytiques sur de larges volumes de données (à l’échelle du pétaoctet).
En premier lieu, Apache Iceberg est un garant de la cohérence des données. Il doit permettre à plusieurs applications de s’appuyer sur les mêmes données tout en assurant le suivi des modifications des fichiers d’une table. Cela doit les phénomènes de corruption qui pollue la plupart des data stores. Conçu comme une alternative à Apache Hive, le projet open source doit apporter de meilleures performances, un schéma évolutif, la possibilité de retrouver les données à un point dans le temps et supporter les traitements ACID depuis ces tables stockées dans les buckets des clients de Snowflake.
Snowflake propose déjà des tables externes au format Iceberg pour réaliser les migrations, des ingestions depuis des systèmes cloud ou pour appliquer des traitements in situ sur des données impossibles à migrer vers le data warehouse cloud. Par ailleurs, le fournisseur annonce en préversion privée la possibilité de stocker des tables externes sur des systèmes on-prem, en premier lieu ceux de Dell et de Pure Storage.
Avec le support natif d’Apache Iceberg, les porte-parole de l’entreprise promettent que toutes les fonctionnalités (gouvernance, chiffrement, réplication, compression, etc.) de la plateforme seront compatibles avec ce type de table. Ici, les ingénieurs de Snowflake ont choisi de coupler le format de données Parquet avec les métadonnées et le metadata catalog d’Iceberg. L’éditeur n’a pas dit si ses tables Iceberg supporteront ORC, Avro, JSON ou d’autres extensions. Pour information, ce format de table est agnostique du format de données qu’il encapsule. Surtout, Iceberg est compatible avec différents moteurs de transformation de données, dont Dremio, Trino, Flink ou encore Apache Spark.
Christian KleinermanSenior VP, product management, Snowflake
Au vu des capacités listées, Apache Iceberg est un terreau pour le déploiement d’un Data Mesh. Un chemin que le fournisseur compte bien explorer.
Surtout, Iceberg permettra d’éviter d’utiliser les tables propriétaires de Snowflake. « Certains de nos clients nous ont dit qu’ils voulaient qu’une certaine quantité de données puissent être lues dans des formats de fichiers ouverts », affirme Christian Kleinerman Senior Vice President, Product Management chez Snowflake. « Cela nous donne une forme d’interopérabilité. C’est très important pour nous », ajoute-t-il.
Unistore et les Hybrid Tables : le translytique selon Snowflake
Snowflake veut maintenant supporter les traitements des données analytiques et transactionnels, à l’instar de MongoDB ou Google avec AlloyDB.
Pour cela, l’éditeur introduit en préversion privée Unistore, une fonctionnalité basée sur des « tables hybrides » (Hybrid Tables), qui sont littéralement les véhicules d’une capacité HTAP (Hybrid transactionnal/analytical processing). Concrètement, Unistore est un moteur orienté lignes qui permet d’accueillir des traitements transactionnels sur les Hybrid Tables. Cela permet également d’effectuer des traitements analytiques sur des données transactionnelles.
Avant tout, ce moteur permet de définir au moins une clé primaire et une clé étrangère (foreign key), ce qui permet de réduire les duplicata d’inserts. Si l’utilisateur a bien activé le système de clés, le mécanisme de contrainte renvoie une alerte si des données sont déjà présentes dans le data warehouse. En principe, cela doit entre autres permettre de rationaliser les ingestions et les migrations de données, afin d’éviter les copies indésirables.
« Nous avons plusieurs clients, dont Novartis, UiPath, IQVIA, Crane ou Adobe qui ont testé cette fonctionnalité. Les retours sont plutôt positifs », assure Christian Kleinerman.
Maintien de la cohérence des données, approche translytique… Snowflake semble avoir les cartes en main pour proposer à ses clients un véritable data lake multicloud pour supporter la majorité des charges de travail.
Cependant, il faudra encore patienter. Cela ne fait que depuis le mois d’avril que le fournisseur supporte en disponibilité générale les données non structurées. Au lieu de prendre en charge des formats ou des types de données, l’éditeur supporte les fichiers des object stores (Azure Blob Storage, Amazon S3 et Google Cloud Storage) et des URLs.
Une meilleure gouvernance, des outils pour gérer les coûts
Si certains clients attendent ce type de fonctionnalités, d’autres sont plus intéressés par les capacités de gouvernance de données et de gestion de coûts. Ainsi, une UI dédiée à la data governance sera « bientôt » en préversion privée, tout comme ce sera le cas pour un mécanisme de lineage au niveau des colonnes. Comme promis par le fournisseur, un système de masquage des données par le biais d’étiquettes sera accessible sous peu en préversion publique. La classification des données, elle, sera en disponibilité générale « d’ici peu ».
En en ce qui concerne l’application de l’approche FinOps, Snowflake compte introduire une fonction nommée « Resource Groups ». De la sorte, des ressources de calcul, de stockage peuvent être associées à des tables ou des objets de données pour en superviser le coût.
Christian KleinermanSenior VP, product management, Snowflake
Certains utilisateurs attendent les fonctions de réplication promise par Snowflake depuis un an. Client Redirect entrera très prochainement en disponibilité générale. À travers une connexion URL sécurisée, Client Redirect permet de disposer d’un failover dans une région différente d’un même cloud ou sur un autre cloud. Idéalement, les traitements ne sont interrompus que brièvement lors d’un incident qui entraîne la chute d’une instance.
Dans la même veine, bientôt en préversion publique, la réplication de compte doit permettre d’adapter le même mécanisme aux comptes des usagers. « Avec cette fonction, l’on ne se contente pas de répliquer les données, mais l’on réplique toutes sortes de métadonnées sur les utilisateurs du compte, les rôles, les entrepôts et toutes les définitions qui entourent les données », affirme Christian Kleinerman.
En préversion privée, le fournisseur a introduit la réplication des pipelines. Cette dernière option sera très utile quand Snowflake lancera ses pipelines de streaming. En effet, l’éditeur a annoncé la préversion privée de Snowpipe Streaming. Ce système doit permettre d’effectuer des ingestions de données par microbatch depuis des environnements serverless. En l’occurrence, Snowflake a revu son utilisation de Kafka Connect pour améliorer ses capacités d’ingestion de données.
Dans la même veine, Materialized Views est un système de pipelines packagés en cours de développement. Il doit permettre de préparer des vues matérialisées de manière déclarative et de réaliser des mises à jour incrémentales.