Le Blog Amazon Web Services

Snowflake et AWS : la combinaison gagnante pour vos besoins data

Cet article est co-écrit par Nicolas Lerose, Sales Engineering Manager chez Snowflake et Olivier Leplus, Developer Advocate chez AWS.

Que vous construisiez des modèles de prédictions ou que vous développiez des applications basées sur des données de prédiction, Snowflake et AWS peuvent vous accompagner, en anticipant vos besoins.

Dans cet article, nous vous montrons comment vos applications qui ingèrent, stockent, analysent ou visualisent des données peuvent bénéficier de l’intégration entre les solutions de Snowflake et d’AWS. Snowflake, tout comme AWS, place le client au centre de ses préoccupations. Nos deux sociétés partagent d’ailleurs, en autre, une valeur d’entreprise commune « La Customer Obssession ».

A la recherche de la meilleure expérience pour nos clients, à travers cet article, vous découvrirez certaines des fonctionnalités techniques de nos offres et les bénéfices que vous pourrez en tirer, que vous soyez « Data Engineer », «Data Scientist », ou « Application Developper ».

Mais d’ailleurs, qu’est- ce que le Data Cloud Snowflake ?

Data Cloud Snowflake est une solution cloud native dédiée à tous les usages de la donnée. Elle se compose :

  • d’une plateforme data dont l’architecture innovante permet de concilier facilité d’usage, sécurité et performance.
  • de milliers de produits data disponibles publiquement sur le réseau global que permet Snowflake.

Snowflake s’intègre nativement avec plus de 25 services AWS, permettant ainsi une couverture complète du cycle de vie de vos données : que vous construisiez des pipelines data, conceviez des modèles de prédiction ou développiez des applications basées sur ces données.

Intégration native des services AWS avec Snowflake

L’usage combiné de Snowflake et AWS s’adresse à tous les utilisateurs de la donnée et dans cet article, nous nous concentrons sur les cas d’usages pertinents pour trois profiles en particulier : les « Data Engineer », « Data Scientist » et « Application Developper ». Nous avons également choisi de mettre en avant quelques uns de nos coups de cœur. Ces coups de coeurs sont des exemples concrets qui illustrent la manière dont nos clients combinent et intègrent les services de Snowflake et AWS pour répondre à leurs besoins métiers.

Data Engineer : capturer, stocker, et transformer les données

Pour collecter les données dont il a besoin, le « data engineer » peut s’appuyer sur les services Amazon Kinesis, AWS MSK couplés à Snowpipe et au nouveau Snowpipe streaming pour une ingestion en continu mais aussi utiliser AWS Appflow pour synchroniser les applications SaaS. Il est également possible d’intégrer nativement des données tierces via le Secure Data Sharing Snowflake pour enrichir celles de l’entreprise.

Pour stocker les données ainsi recueillies, le data engineer a le choix entre le stockage interne de Snowflake ou sur Amazon S3 via le format de table Apache Iceberg (prochainement).

Iceberg est un standard 100 % open source multi-plateforme qui vient compléter les fichiers de données (au format Parquet, Avro ou ORC) stockés sur Amazon S3 avec les métadonnées de ces derniers, permettant ainsi une interopérabilité totale de Snowflake avec Amazon Athena, Amazon EMR et AWS Glue mais aussi Apache Spark, Apache Flink, Apache Hive, Presto, etc..

Pour transformer les données et préparer les données, nos clients adoptent un design ELT (Extract, Load & Transform), des pipelines avec des transformations en SQL ou Python exécutées par un moteur polyglotte et performant pour minimiser les transferts de données et bénéficier des meilleures performances possibles.

Par exemple, les Dynamic Tables de Snowflake ainsi que l’utilisation combinée de DBT avec Amazon MWAA permettent la mise en place d’une telle approche tout en simplifiant l’orchestration des pipelines.

Il est enfin possible de connecter Snowflake à AWS Glue et AWS EMR.

Notre « petit coup de cœur »  : un exemple concret d’un pipeline temps réel robuste et facile à instancier en quelques minutes

Pipeline temps réel robuste avec AWS et Snowflake

Les applications SaaS occupent une place de plus en plus importante dans le patrimoine des données de l’entreprise. Il est essentiel de pouvoir les synchroniser facilement avec la plateforme data. C’est ce que permet Amazon AppFlow avec Snowflake en seulement quelques clics. ❶

Les pipelines data modernes permettent d’ingérer et de traiter les données en temps réel. Amazon Managed Streaming for Kafka (MSK) est une implémentation entièrement managée du standard open source des plateformes de streaming en temps réel : Apache Kafka. Le connecteur natif Snowflake pour Kafka permet de streamer directement les données dans Snowflake via Snowpipe Streaming avec une faible latence d’à peine quelques secondes. ❷

Enfin le Secure Data Sharing Snowflake permet de partager de façon sécurisée et en lecture seule des objets (tables, vues, fonctions…) entre un compte fournisseur et un compte consommateur. Cet accès direct et sans recopie permet ainsi d’enrichir le pipeline avec des données live et de qualité notamment à travers la Marketplace Snowflake. ❸

Une fois la matière brute ainsi récupérée il est très simple de créer des pipelines data déclaratifs avec les Dynamic Tables Snowflake , les transformations à effectuer et la fraîcheur attendue étant simplement déclarées dans le DDL de ces tables, qui peuvent être chaînées. ❹

Data Scientist : modéliser les événements métier de l’entreprise

Tirer parti de solutions ML nécessite généralement une infrastructure importante, une multitude de progiciels et toute une équipe d’ingénieurs hautement qualifiés.

L’alliance de Snowflake et Amazon SageMaker fournit au data scientist une large palette d’outils et de mécanismes pour adresser de bout en bout le cycle de vie d’un modèle de ML.

En complément des données de l’entreprise qui constituent l’actif principal, il est commun de vouloir acquérir des données tierces et publiques pour enrichir les analyses. C’est possible en quelques clics grâce à la Marketplace Snowflake et au Data Exchange AWS.

Marketplace Snowflake

Une fois les données acquises, la première étape consiste à les analyser, nettoyer et préparer pour les traitements ultérieurs. Cette première étape incontournable, aussi appelée « feature engineering », consiste à extraire les caractéristiques essentielles des données brutes. Elle est particulièrement importante pour aboutir à un modèle performant et évolutif.

Sagemaker Data Wrangler qui supporte nativement Snowflake comme source de données permet de simplifier ces opérations.

Pour accélérer la création de prototypes ML et ainsi améliorer le « time- to- market » d’un produit data, il est possible d’invoquer les fonctionnalités d’AutoML Amazon SageMaker Autopilot directement en SQL depuis Snowflake pour automatiquement choisir et optimiser les modèles.

Amazon Sagemaker Studio permet de contrôler le choix des algorithmes, le volume de données et la puissance de calcul associée pour personnaliser les modèles ML.
Les clients de Snowflake utilisent en général les libraires Snowpark dans les Notebooks Amazon Sagemaker pour minimiser les transferts de données et obtenir les meilleures performances possibles.

Notre « petit coup de cœur » : un exemple concret d’une IA Data-Centric simple et évolutive

Une IA Data-centric telle que décrite par Andrew Ng, pionnier du Machine Learning et professeur à Stanford depuis plus de 20 ans, est « la discipline qui consiste à systématiquement améliorer les données utilisées pour construire un système d’IA ».
Un système d’IA Data-centric met ainsi l’accent sur les données plutôt que sur le code.

IA Data-centric avec Amazon SageMaker et Snowflake

Les milliers de datasets disponibles sur la Marketplace Snowflake permettent d’enrichir très rapidement le feature store de données qualifiées et pertinentes. ❶

Pour le feature engineering, SageMaker Data Wrangler connecté nativement et en direct à Snowflake, permet l’exploration et la transformation des données visuellement, sans rédiger une seule ligne de code. ❷

Afin de s’affranchir des tâches itératives de choix d’algorithmes et de validation du modèle, les capacités d’AutoML apportées par Amazon SageMaker Autopilot for Snowflake permettent de créer, entraîner et ajuster des modèles directement depuis Snowflake. ❸

Par exemple, la requête SQL ci-dessous permet de générer un modèle optimisé pour prévoir l’attrition à partir d’un ensemble de données de profil clients dans Snowflake.

Création d’un modèle de prévision d’attrition directement en SQL depuis Snowflake

Amazon Sagemaker Studio Lab est une alternative gratuite et complètement managée du standard open source JupyterLab. Il suffit ensuite d’utiliser l’API Snowpark DataFrame dans les notebooks pour que les calculs s’opèrent directement sur Snowflake. ❹

« Application Developer » : un exemple concret pour créer des applications… tout simplement !

Grâce à ses connecteurs natifs pour Java, Python, Node.js, .NET et Go Snowflake propose des interfaces pour développer des applications dans votre écosystème favori.

Il est ainsi facile pour les développeurs de manipuler leurs données stockées dans Snowflake.
Sensible aux feedbacks des développeurs Snowflake a récemment annoncé une optimisation du connecteur Python, réduisant ainsi considérablement la taille des exécutables AWS Lambda associés.

Si vous utilisez un langage qui ne dispose pas de connecteur natif, Snowflake supporte les protocoles ODBC et JDBC qui standardisent une syntaxe uniforme pour s’interfacer avec vos données.

En complément Snowflake a récemment annoncé le support d’ADBC : le projet Arrow Database Connectivity de la fondation Apache. Ce nouveau standard optimisé pour les requêtes analytiques améliore significativement les performances avec des langages comme Rust, R et Ruby.

Exemple d’application Streamlit

Les fonctions externes Snowflake sont des fonctions définies par l’utilisateur qui sont stockées et exécutées en dehors de Snowflake. Il est ainsi facile d’invoquer des fonctions Lambda pour permettre la prise en charge de tout autre code personnalisé fonctionnant en dehors de Snowflake.

Afin de faciliter la création et le déploiement de vos applications web, Snowflake propose Streamlit, un framework open source pour développer rapidement des applications en Python.
Il simplifie la création de tableaux de bord interactifs, d’analyses prédictives dynamiques, interfaces de saisie ainsi que de nombreux autres usages comme l’illustrent les innombrables exemples disponibles sur la galerie Streamlit.

En complément de la version Open Source que vous pouvez héberger sur une instance Amazon EC2, Snowflake propose une version complètement managée: Streamlit in Snowflake.

Notre « petit coup de cœur » : Un environnement de développement agile et scalable

Environnement de développement agile et scalable AWS et Snowflake

Tous les langages les plus populaires permettent de se connecter à Snowflake afin de manipuler les données directement dans votre application grâce aux connecteurs Snowflake. ❶

Si Python est votre langage de prédilection, vous pouvez choisir de développer et d’héberger votre application directement dans Streamlit afin de profiter de l’intégration native et transparente avec Snowflake. ❷

Vous pouvez également décider d’intégrer Snowflake dans une application existante en hébergeant votre code dans AWS. ❸

Java, Python, Node.js et C# étant supportés par AWS Lambda, vous pouvez ainsi directement accéder et manipuler vos données stockées dans Snowflake depuis vos fonctions en important les bibliothèques Snowflake.

Exemple de connexion et requête simple en Python

Dans ce cet artcile co-écrits avec Snowflake, nous avons vu comment un Data Engineer, un Data Scientist et un développeur peuvent profiter de l’intégration entre AWS et Snowflake afin de:

  • Capturer, stocker, et transformer les données
  • Modéliser les événements métier de l’entreprise
  • Créer des applications… tout simplement!

Pour aller plus loin, démarrez dès maintenant votre essai gratuit de Snowflake et consultez les ressources disponibles :

AWS organise des événements en ligne et en présentiel, réunissant la communauté du cloud computing afin de vous permettre de tisser des liens, de collaborer et d’apprendre auprès d’experts. Que vous soyez créateur ou développeur, retrouvez les événements Amazon Web Services à venir, ainsi que l’ensemble des  formations et certifications disponibles pour vous.

N’hésitez pas également à contacter le support commercial des équipes AWS, ainsi que nous experts.

A propos des auteurs

Nicolas Lerose, Snowflake Nicolas Lerose est Sales Engineering Manager chez Snowflake. Passionné de data, il accompagne depuis plus de 16 ans ses clients dans la mise en place de solutions analytiques adaptées à leurs besoins.
Olivier Leplus, AWS Olivier Leplus est Developer Advocate chez AWS. Passionné de dev, il est toujours à la recherche de solutions simples et efficaces pour tirer partie des données dans ses applications.