Une journée au Snowflake DCWT : Let it Snow

Ce 5 octobre 2023 s’est tenue, au Palais Brongniart à Paris, l’étape française du Data Cloud World Tour de Snowflake. Au programme de cette journée, une vingtaine de conférences sur le thème du Data Cloud Snowflake avec des formats variés : tables rondes avec des clients pour des retours d’expérience, présentations des nouveautés apportées par Snowflake, démo interactive. 800 personnes étaient présentes à cet événement, dont Ippon en tant qu’exposant, Snowflake étant l’un de nos partenaires.

De mon côté, j’ai pu assister à différentes conférences tout au long de la journée. Je vous propose donc une review des tendances et des annonces faites par Snowflake.

Snowflake, la diversification des services proposés continue

Cela fait maintenant quelques années que Snowflake n’est plus seulement un Data Warehouse mais bien un éditeur qui propose tout un écosystème de services data au sein du cloud. Cette tendance s’est encore confirmée : Frank Slootman, CEO, et Benoît Dageville, cofondateur et président responsable produit, sont revenus sur les annonces fortes réalisées lors du Snowflake Summit de juin dernier à Las Vegas, comme les Snowpark Container Services, l’intégration de Streamlit, Snowpipe Streaming ou encore le LLM Document AI.

Streamlit

Début 2022, Snowflake avait annoncé l’acquisition de Streamlit, le framework open-source d’applications, afin de l’intégrer directement dans sa plateforme. Pour rappel, Streamlit permet d’implémenter facilement des web apps grâce à des scripts Python.

Streamlit dans Snowflake vient de passer en public preview. Les équipes Data peuvent donc maintenant créer des applications interactives avec des visualisations dynamiques, de la collecte de données, ou encore de la réécriture de données, tout cela de manière adaptée à chaque cas d’utilisation.
Un exemple concret montré en conférence consiste en une application qui permet de récolter une liste de features à implémenter et qui crée automatiquement les tickets JIRA associés à chaque feature. Cela est possible grâce au whitelisting d’URLs externes à Snowflake et à leur intégration au sein de l’application Streamlit.

Streamlit suit le modèle RBAC du compte. Il est donc facile de partager une app à un certain rôle, par exemple.
Pour ceux qui souhaitent partager leurs applications à d’autres comptes Snowflake, il est possible d’utiliser Streamlit comme framework pour construire une Snowflake Native App et de la publier ensuite sur la Marketplace.

Documentation : https://www.snowflake.com/blog/building-python-data-apps-streamlit/

Snowpark Container Services

L’une des annonces phares du Summit de juin dernier concernait les Snowpark Container Services. C’est donc tout naturellement que Snowflake est revenu dessus lors de cette journée. Basés sur l’environnement d’exécution Snowpark, ils permettent de packager des workloads ML, des LLM open-source ou tiers, voire même des applications, développées dans le langage de programmation de votre choix. Ces images peuvent ensuite être déployées et exécutées sur des instances configurables de compute CPU ou GPU, avec une facturation à l’utilisation.

Figure 1 : Présentation des Snowpark Container Services

Snowpark Container Services est actuellement en private preview sur le cloud AWS, l’objectif étant de le rendre disponible sur les différents cloud providers. Snowflake travaille également à rendre accessible au sein de sa Marketplace des applications natives packagées dans des images de conteneurs.

Documentation : https://www.snowflake.com/blog/snowpark-container-services-deploy-genai-full-stack-apps/

LLM

LLM par-ci, LLM par-là… Vous en avez forcément déjà entendu parler, notamment avec l’avènement de ChatGPT : ce sont les Large Language Models. Snowflake a développé son LLM maison, Document AI, actuellement en private preview, utilisé pour l’extraction de contenus de documents tels que des PDF ou des images. La stratégie de Snowflake sur les LLM comprend également l’utilisation de Streamlit comme interface front de discussion avec un LLM.
Snowflake souhaite laisser la possibilité à ses clients d’utiliser d’autres LLM. Ainsi, des LLMs open-source tels que Llama 2 pourront être intégrés au compte grâce au Snowpark Container Services. De même, certains LLMs développés par des partenaires Snowflake pourront être commercialisés sur la Marketplace. Enfin, l’utilisation de Snowpark External Access donnera accès aux LLMs externes.

Documentation : https://www.snowflake.com/blog/generative-ai-llms-summit-2023/
https://www.snowflake.com/blog/external-endpoints-snowpark/

Snowpipe Streaming et les Dynamic Tables

Pour finir, Snowflake a annoncé que le service Snowpipe Streaming, basé sur Snowpark, serait bientôt generally available. Snowpipe et Copy étaient jusqu’alors les services d’ingestion disponibles sur Snowflake. Avec Snowpipe Streaming, ils souhaitent adresser les sujets d’ingestion de données en quasi temps réel, avec une latence médiane annoncée inférieure à cinq secondes. Il sera également possible de construire des connecteurs Kafka, Flink, ou pour des applications ou bases de données directement.

Les Dynamic Tables sont actuellement en public preview. C’est un type de table qui permet de matérialiser les résultats d’une requête automatiquement et en continu. Il suffit pour cela de définir un Target Lag, le taux de rafraîchissement de cette table, le plus rapide étant toutes les minutes. Ci-dessous un exemple de code de ces Dynamic Tables.

Le rafraîchissement est automatiquement incrémental. Cela inclut les UPDATE et les DELETE potentiels. Toutes les Dynamic Tables au sein d’un DAG sont mises à jour de manière cohérente à partir de snapshots alignés.

Il est possible de lancer le rafraîchissement d’une table de manière manuelle, voire de le suspendre ou de le reprendre pour une table et pour toutes celles qui en découlent au sein d’un pipeline, avec les commandes ci-dessous.

De même, si un rafraîchissement manuel d’une Dynamic Table est déclenché en fin de chaîne, le moteur remonte la chaîne jusqu’à la première table et effectue une mise à jour en cascade.

Documentation : https://docs.snowflake.com/en/user-guide/data-load-snowpipe-streaming-overview
https://docs.snowflake.com/en/user-guide/dynamic-tables-about

Conclusion

Ce Data Cloud World Tour était l’occasion pour Snowflake de revenir sur les annonces du Summit de juin dernier et de les détailler. Snowflake continue d’enrichir son écosystème de services Cloud & Data proposés et il va être intéressant de suivre les évolutions des LLM, Dynamic Tables, Snowpark Container Services ou encore Streamlit.