Le Data Cloud
Pour parler de Snowflake, ne dites plus “Cloud Data Warehouse” mais juste “Data Cloud”.
Les fonctionnalités de Snowflake dépassent maintenant largement les capacités d’un Data Warehouse traditionnel et il n’y a plus de cas d’usages qui ne soient pas à la portée de cette plateforme de données tant que nous restons avec des données structurées ou semi-structurées.
Le CEO de Snowflake Frank Slootman vous en parle dans cet article : https://www.snowflake.com/blog/rise-of-the-data-cloud/
Voyons quelques unes de ces fonctionnalités innovantes.
Le masquage de données dynamique
C’est une fonctionnalité super pratique qui permet de définir une règle de masquage des données en fonctions des permissions de l’utilisateur qui la consulte.
Par exemple, si vous êtes dans le service RH, vous pouvez voir l’adresse e-mail complète. Si vous êtes dans l’équipe data science, vous avez besoin de voir le domaine de l’adresse e-mail à des fins de statistiques. On définira alors une règle qui remplacera dynamiquement par des caractères fixes (par exemple X) tout ce qui se trouve devant le caractère @. Si vous êtes dans un autre service, vous ne verrez que des X.
Lien vers la documentation : https://docs.snowflake.com/en/user-guide/security-column-ddm.html
La recherche accélérée
Nombreux sont les cas où on veut faire une recherche (lookup) sur une table sans passer par la clé de clustering. Snowflake permet de calculer, en tâche de fond, un chemin optimisé vers les données. Attention, ce n’est intéressant que pour les tables de plus de 100 Go.
Pour l’instant les types de données et les comparateurs supportés sont peu nombreux, mais le service va continuer de s’améliorer.
Lien vers la documentation : https://docs.snowflake.com/en/user-guide/search-optimization-service.html
Snowsight
Snowsight est une évolution majeure de l’excellente interface web d’utilisation et d'administration de Snowflake.
En plus de rendre possible la collaboration sur les requêtes SQL, Snowsight permet directement de faire de la visualisation de données par la construction de tableaux de bords.
Lien vers la documentation : https://docs.snowflake.com/en/user-guide/ui-snowsight.html
Les procédures stockées en SQL
Subjectivement, je ne suis pas du tout fan des procédures stockées.
Jusqu’à maintenant Snowflake ne les supportait qu’en JavaScript, ce qui me donnait une raison de plus de ne pas les utiliser.
Le support du SQL pour les procédures stockées a été annoncé pour un futur proche.
Objectivement cette fois, cela peut permettre de réaliser des transformations métiers sans sortir l’artillerie lourde. Et on bénéficie des ressources de calcul de Snowflake.
La documentation n’est pas encore disponible pour les procédures écrites en SQL.
Les fonctions externes
Cette fois nous sommes dans un registre différent. Snowflake va nous permettre d’invoquer un endpoint REST directement depuis une fonction définie par l’utilisateur.
Par exemple, si vous voulez traduire le contenu d’un champ en le soumettant à un service web de traduction, vous pouvez le faire directement depuis Snowflake dans une requête INSERT ou UPDATE.
Encore un exemple qui montre que Snowflake va bien au delà du seul Data Warehouse.
Lien vers la documentation : https://docs.snowflake.com/en/sql-reference/external-functions.html
Les fonctions Java
Là, on va vraiment commencer à utiliser la puissance de Snowflake pour exécuter autre chose que du SQL.
Snowflake va bientôt nous donner la possibilité d’uploader un JAR qui sera exécuté sur le même warehouse (unité de calcul Snowflake) qui exécute les requêtes.
D’autres langages vont suivre et on attend le support du Python avec impatience.
Cette vidéo vous présente un exemple d’implémentation : https://www.youtube.com/watch?v=F5DWBdhFQF4
Les données géospatiales
Jusqu’à maintenant, quand on voulait stocker des coordonnées dans Snowflake on utilisait le type VARIANT.
Dorénavant, le type GEOGRAPHY permettra de définir des points ainsi que des lignes.
Des fonctions SQL ont été ajoutées par exemple pour mesurer la distance entre deux points ou savoir si deux objets comportent une intersection.
La documentation du type GEOGRAPHY est ici : https://docs.snowflake.com/en/sql-reference/data-types-geospatial.html#geography-data-type
Et la liste des fonctions geospatiales est ici : https://docs.snowflake.com/en/sql-reference/functions-geospatial.html
La data marketplace
Comme son nom l’indique, La Data Marketplace vous permettra de consommer directement des datasets externes depuis Snowflake ou bien de monétiser vos propres datasets. Sans avoir besoin d’utiliser des services d’ingestion ou d’exposition de données.
Avec l’utilisation de plus en plus fréquente de Snowflake dans le monde de l'entreprise, nul doute que les datasets à haute valeur ajoutée vont être de plus en plus nombreux sur cette marketplace.
On pourrait par exemple imaginer des datasets de sinistralité pour le monde de l’assurance, ou de météo très détaillée pour le secteur de la production d’énergies renouvelables.
Lien vers la documentation : https://docs.snowflake.com/en/user-guide/data-marketplace.html
Le partenariat avec Salesforce
Salesforce et Snowflake ont renforcé leur alliance, ce qui va avoir des avantages certains pour mettre en valeur les données du CRM.
Dans un sens, on pourra explorer des données de Snowflake directement depuis Salesforce Einstein Analytics. Voici la documentation : https://help.salesforce.com/articleView?id=bi_explorer_direct_data_snowflake.htm&type=5
Dans l’autre sens, on va pouvoir décharger les données de Einstein Analytics dans Snowflake sans avoir besoin d’outil tiers. La documentation est ici : https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_bi_integrate_connectors_output_snowflake.htm?edition=&impact=
Ces deux fonctionnalités sont encore en Beta mais sont très prometteuses.
De nouvelles instances
Et pour finir, on descend dans la soute avec deux nouvelles tailles d’instances pour motoriser tout cela. Il s’agit des tailles 5XL et 6XL. Chez Snowflake, chaque taille double la puissance de la taille inférieure. Avec le 6XL on atteint donc 512 serveurs par cluster. Celui-là, il ne faudra pas oublier de l’arrêter.