borispain69 - stock.adobe.com

Data science : Snowflake avance doucement ses pions

Ce 16 novembre, Snowflake a fait un point sur la modernisation de son data warehouse cloud, en cours depuis 2020. Maintenant que de grands comptes ont migré vers sa plateforme, le fournisseur se doit d’étoffer ses capacités de data science, de gouvernance et de prise en charge des données non structurées pour gérer les nouveaux usages.

Dans le cadre de sa conférence annuelle Snowday et de sa mise à jour Winter 2021, Snowflake a largement promu Snowpark. Pour rappel, Snowpark est une bibliothèque accessible depuis une API qui exécutent des fonctions Python, Scala et Java en les « transformant » en instructions compatibles avec le moteur SQL de Data Cloud, le data warehouse de Snowflake.

Plus spécifiquement, des environnements sandbox « sécurisés » contenant les capacités d’exécutions Java, Scala et Python sont disposés à côté du moteur, côté serveur. Cette capacité doit permettre d’effectuer des traitements en minimisant les mouvements de données. Jusqu’à récemment, les data scientists et data engineers devaient déplacer les tables en dehors de Snowflake pour y appliquer des modèles de machine learning.

Snowpark : Python sur Snowflake en 2022

Après avoir introduit les User Defined Functions (UDF) pour Java et Scala et Snowpark, l’environnement pour les exécuter, les utilisateurs attendaient la même fonctionnalité en préversion privée pour Python. Sa disponibilité sera étendue d’ici 2022. De fait, ce langage de programmation est largement employé par les data scientists pour manipuler les données et construire leurs modèles de machine learning.

Dans ce but, Snowflake s’est appuyé sur l’intégration de Pandas dans le data warehouse. Pandas fournit notamment un DataFrame, une structure de données bidimensionnelle, tabulaire, comprenant des lignes et des colonnes. Cela permet de visualiser les données depuis un IDE et d’appliquer les premières transformations de données à la mode ETL/ELT.

Pour ne pas dépayser ces utilisateurs, l’API Snowpark peut être appelée depuis un notebook Jupyter côté client. En outre, Snowpark pour Python doit donner accès à des « centaines de packages open source sélectionnés et préinstallés », selon Sri Chantila, Product Manager chez Snowflake.

Dans ce but, Snowflake a annoncé un partenariat-investissement avec Anaconda le 30 septembre dernier. Anaconda est l’éditeur d’une plateforme de distribution de Python et R pour des projets de data science. L’objectif est de contrôler les dépendances accessibles et surtout de rendre accessibles plus de 1000 packages/frameworks, dont Scikit-learn, XGBoost, TensorFlow, Pytorch, Numpy ou encore GeoPandas. En principe, Snowpark pour Python permettra également d’appliquer des UDF dans ce langage de programmation sur Data Cloud depuis une plateforme de data science tierce, si son éditeur a adhéré au partenariat Snowpark Accelerated.

Le fournisseur met surtout en avant la possibilité d’enrichir les données stockées sur Snowflake ou d’utiliser des modèles de machine learning prébâtis qui seront accessibles depuis sa Data Marketplace.

« Le support de nombreuses librairies Python nous débloquera beaucoup de capacités supplémentaires ».
John DamalasVP et CTO Pacific Life

« L’annonce du support de Python est importante pour nous », déclare John Damalas, Vice-président et CTO de Pacific Life, une société financière californienne spécialisée dans l’assurance vie, lors d’une conférence de presse organisée par Snowflake. « Ce n’est pas seulement un langage de choix pour les équipes analytiques, mais cela permet de propager des fonctions Python plus tôt dans la chaîne logistique de la data science, que ce soit pour de la préparation, du feature engineering ou même des tâches d’ingénierie des données », ajoute-t-il. « Le support de nombreuses librairies Python nous débloquera beaucoup de capacités supplémentaires ».

John Damalas considère également que cela réduira la fragmentation des traitements et le nombre de mouvements de données nécessaires dans le cadre des efforts analytiques de Pacific Life.

Les User Defined Functions s’enrichissent

Snowflake poursuit également l’expansion d’autres fonctionnalités de Snowpark. Le fournisseur a présenté en préversion privée des procédures stockées permettant « d’étendre le SQL de Snowflake en le combinant avec JavaScript ». Contrairement aux fonctions, ces procédures stockées supportent des logiques développées en JavaScript qui peuvent être rejouées. Selon Snowflake, cela s’avère particulièrement utile pour éviter les erreurs de syntaxe au moment d’exécuter des instructions régulièrement exploitées, ou encore pour automatiser certaines requêtes en assignant des rôles.

Ces procédures sont toutefois différentes des fonctions. Par exemple, une requête SQL peut appeler plusieurs fonctions, mais une seule procédure stockée est possible par requête. De manière générale, les procédures stockées lancent des opérations classiques (Select, Update, etc.) et des tâches administratives (nettoyage d’enregistrements temporaires, suppressions de données trop anciennes, etc.). De plus, un framework de journalisation encore à l’essai est accessible depuis Snowpark pour superviser et débugger certaines fonctions.

En outre, les UDF Java supportent en préversion publique des fonctions tabulaires (UDTF). Celles-ci créent une fonction par ligne permettant de partitionner ou de parser des données et des fichiers présents dans Data Cloud. En aperçu privé, File Access, associé aux UDF Java, prend en charge de nouvelles données non structurées dans la plateforme, par exemple des métadonnées EXIF issues d’une image ou des PDF.

Snowpark et les UDF sont disponibles via AWS depuis juin et sont désormais accessibles sur Google Cloud et Microsoft Azure, si les clients en font la demande.

Réplication et gouvernance, deux exigences des grands comptes

Le fournisseur entend répondre aux exigences de gouvernance et de réplication des données de ses 4 900 clients (dont 212 membres du Fortune 500). « Nous observons un besoin croissant d’opérer des environnements à travers plusieurs régions et plusieurs clouds », note Christian Kleinerman Senior Vice President, Product Management chez Snowflake. Pour éviter les « nouveaux silos » du cloud, Snowflake permet d’effectuer – à nouveau en préversion privée – des réplications de compte intercloud (et des failovers dans certains cas) non seulement pour les données issues des tables, mais également pour la « synchronisation continue » de la gestion RBAC, des politiques de gouvernance et des logs.

L’autre volet important pour Snowflake demeure la gouvernance des données. L’entreprise développe un outil de data lineage, veut à l’avenir faciliter le traçage des dépendances d’objets pour les « données sensibles ». Elle prévoit aussi offrir des moyens d’anonymisation et de masquage conditionnel d’ici peu. Mais les dirigeants ont compris qu’ils ne pourraient pas faire sans les partenaires spécialistes du data management et du data cataloging. L’initiative Data Governance Accelerated rassemble déjà des acteurs tels Alation, Informatica, Satori, Ketch, OneTrust ou encore Collibra.

Snowflake applique patiemment son programme

En novembre 2020, LeMagIT notait que la feuille de route de Snowflake débordait d’intentions, confirmées dès juin 2021. Un an plus tard, le fournisseur démontre qu’il suit son programme à la lettre, mais la multiplication des préversions et l’absence d’annonces en disponibilité générale semblent conforter l’idée que le chantier en cours est conséquent. Si l’on se fie aux propos de Christian Kleinerman, l’entreprise est plus avancée que ces appellations le laissent à penser.

Pour autant, Snowflake précise que les fonctionnalités en préversion « ne devraient pas être utilisées en production ou avec des données de production ». Au total, 21 fonctionnalités sont encore en aperçu public : elles sont accessibles depuis tous les comptes Snowflake. Les clients peuvent demander à tester les capacités en préversion privée.

En face, les acteurs tels que Databricks, AWS, Microsoft Azure (via Synapse Analytics) ou encore Teradata misent plus franchement sur le support des workloads de data science.

Pour approfondir sur Intelligence Artificielle et Data Science