Introducing Polaris Catalog

An open source catalog for Apache Iceberg

TÉMOIGNAGES CLIENTS

Sanofi bénéficie d’une analyse plus rapide des données cliniques réelles avec Snowpark

En remplaçant sa solution gérée Spark par Snowflake, Sanofi a accéléré son traitement des données et réduit son coût total de possession, tout en garantissant la conformité et la gouvernance de ses données.

RÉSULTATS CLÉS :

50 %

d’amélioration des performances par rapport à Spark, la précédente solution gérée

100 m

de dossiers patients par cohorte, traités en quatre minutes en moyenne

Doctors looking at a computer
vanderbilt-university-logo-customer-story-alt
Secteur
Pharmaceutique
Lieu
Bridgewater, NJ

Perpétuer les miracles de la science

Avec des sites emblématiques à Bridgewater, dans le New Jersey, et à Cambridge, dans le Massachusetts, Sanofi emploie plus de 13 000 professionnels aux États-Unis. Sanofi U.S. se compose de quatre unités commerciales : Specialty Care, Vaccines, General Medicines et Consumer Healthcare. Dans le monde, plus de 100 000 collaborateurs de Sanofi s’engagent à perpétuer les miracles de la science pour améliorer la vie de chacun.

Points forts
  • Données cliniques réelles pour la communauté médicale : Sanofi crée actuellement une application web réactive, basée sur Snowflake, permettant aux professionnels de santé d’analyser les données cliniques réelles pour évaluer les bénéfices et les risques thérapeutiques.

  • Migration de la solution gérée Spark vers Snowpark : migrer depuis Spark, sa précédente solution gérée, a permis à Sanofi de constater une amélioration des performances de 50 % et d’éliminer certaines difficultés comme l’administration, la configuration et la simultanéité.

  • Services professionnels : les services professionnels et Snowpark Migration Accelerator, un outil de conversion de code automatisé, ont contribué à convertir le code PySpark en code Snowpark et à accélérer la migration.

Mettre à l’échelle pour prendre en charge une application de données cliniques réelles

Sanofi entreprend actuellement un projet de développement d’une plateforme de traitement des données à l’échelle de l’entreprise, conçue pour assister la communauté médicale dans ses besoins analytiques, notamment dans le domaine de la découverte de médicaments. Ce projet a pour principal objectif de créer une application web intuitive destinée aux professionnels de santé, où ces derniers peuvent saisir des filtres de requête liés à des maladies, des médicaments ou des procédures, mais également identifier des cohortes de patients répondant à des critères spécifiques, pour analyser plus rapidement les données cliniques réelles et évaluer les bénéfices ou les risques thérapeutiques. 

Cette application web permet de traiter des milliards de dossiers et de générer des informations analytiques clés pour un utilisateur donné. Pour y parvenir, la précédente architecture de données de Sanofi était basée sur un moteur géré Spark, utilisé comme couche de calcul. Avec cette architecture, l’équipe en charge des données faisait toutefois face à plusieurs difficultés liées au déploiement et à la maintenance manuels de Spark, à des problèmes d’évolutivité des ressources, à de fréquentes défaillances du pipeline en raison de ressources de calcul limitées, à des problèmes de simultanéité au moment des pics d’utilisation, ainsi qu’à des complexités de transfert des données entre différentes plateformes.

Afin d’améliorer ses services pour ses utilisateurs, l’équipe en charge des données de Sanofi a décidé de revoir la conception de son moteur analytique. « Alors que nous exploitions déjà Snowflake dans le cadre de différentes tâches de traitement des données, nous avons envisagé de tester Snowpark en tant que solution potentielle pour répondre à nos futurs besoins de traitement des données », explique Suku Muramula, Architecture and Data Engineering Lead.

Reconcevoir le moteur analytique de Sanofi avec Snowflake et Snowpark

Sanofi a choisi Snowflake et Snowpark, l’ensemble de bibliothèques et d’environnements d’exécution, pour déployer le code Python en toute sécurité dans le cadre de la reconception de son moteur analytique. Grâce à la séparation entre le stockage et le calcul, à la maintenance quasi nulle et à l’évolutivité à la demande proposées par Snowflake, Sanofi a réussi à gérer efficacement davantage de charges de travail et de volumes de données sans compromettre ses performances, le tout en maintenant des coûts optimaux.

Au début de sa migration, l’équipe en charge des données a privilégié une architecture axée sur les services. L’objectif était de concevoir un système robuste et efficace équipé de services indépendants, améliorant l’isolement des défaillances pour garantir que les problèmes rencontrés sur un service n’affectent pas le système tout entier. Cette étape s’est avérée déterminante dans l’accélération du parcours de migration depuis un cluster Spark géré vers Snowflake, car elle permettait de limiter les perturbations de l’application web.

sanofi diagram

Figure 1. Architecture actuelle équipée d’un écosystème Snowflake et Snowpark

Comme illustré sur la figure 1, au lieu d’utiliser des pipelines complexes, la nouvelle architecture simplifie le traitement des données en regroupant la plateforme de données et de calcul avec Snowflake et Snowpark. Résultat : une latence réduite et des performances globales améliorées, pour un traitement et une analyse des données plus rapides.

Les fonctionnalités de Snowflake pour la gouvernance des données, notamment les autorisations granulaires et la gestion des accès basée sur les rôles, offrent un contrôle solide sur les données et les bibliothèques. Ce contrôle garantit la sécurité des données et la conformité avec les politiques.

« Outre l’accélération du traitement de nos données, il est primordial dans notre secteur de protéger les données de propriété intellectuelle et de garantir la sécurité et la bonne gouvernance des algorithmes. Grâce à Snowpark comme couche de calcul pour le code Python au sein de notre plateforme de données Snowflake, nous n’avons plus besoin de transférer de données et nos administrateurs conservent le contrôle total de toutes nos données et bibliothèques. »

Suku Muramula
Architecture and Data Engineering Lead, Sanofi

50 % d’amélioration des performances avec Snowpark

Dans sa précédente architecture, Sanofi rencontrait plusieurs difficultés en utilisant un moteur Spark géré en guise de couche de calcul. Le déploiement manuel du moteur nécessitait des mises à jour manuelles chaque fois que de nouvelles fonctionnalités étaient introduites ou que des changements étaient réalisés au niveau du pipeline back-end. Cette coordination accrue et cette dépendance manuelle entre les différents processus augmentaient le temps nécessaire pour exécuter le pipeline de bout en bout.

La création et la configuration d’un cluster Spark exigeaient également un nombre important de ressources. « Nous avons observé que le cluster n’était pas évolutif, et qu’il nécessitait une configuration manuelle pour faire fonctionner une instance plus volumineuse permettant de soumettre des requêtes complexes ou nombreuses. Cela provoquait des problèmes de performance au niveau du pipeline », explique Ratan Roy, Data Engineer chez Sanofi. « Aucune optimisation automatique n’était intégrée et le traitement des données nécessitait un très grand espace de mémoire. » 

L’équipe en charge des données a vécu de nombreuses situations de retard ou de défaillance du pipeline en raison d’un manque de ressources de calcul. Du fait du partage de l’environnement Spark géré, les ressources de calcul étaient disponibles en fonction de la disponibilité du cluster Spark, et non à la demande en fonction de la requête. 

La plateforme basée sur le web, utilisée par la communauté des utilisateurs médicaux, rencontrait des problèmes de simultanéité lorsque plusieurs utilisateurs interactifs envoyaient des requêtes pour exécuter simultanément des programmes d’applications web. Au vu des exigences de traitement de plus d’un milliard de dossiers par le cluster Spark, le temps de réponse analytique moyen pour une requête était d’environ 15 minutes au moment des pics d’utilisation.

Alors que la séparation du calcul et du stockage de données est native sur la plateforme Snowflake, l’ancienne solution Spark gérée n’avait pas de couche de stockage de données intégrée. Le traitement des données devait être exécuté séparément et exigeait une installation, une configuration et un transfert de données supplémentaires entre plusieurs plateformes, ce qui rallongeait les temps de traitement des données.

Après avoir décidé de migrer vers Snowpark et la plateforme Snowflake, l’équipe en charge des données de Sanofi a mené une analyse comparative qui a révélé une amélioration globale de 50 % des performances et une baisse du coût total de possession, en comparaison avec l’ancien cluster Spark géré. « Nous sommes désormais capables de traiter des données à grande échelle au sein de l’environnement Snowflake, en bénéficiant d’une flexibilité et d’une vitesse accrues à un coût inférieur », ajoute Ratan Roy. « En utilisant Snowflake comme espace de stockage de données central et le calcul Snowpark, nous avons limité nos coûts de transfert des données, ce qui nous a permis d’accélérer nos performances et de réduire notre coût de calcul. »

doctors in a hallway

“Our entire data engineering pipeline and algorithm is built using Python and Snowpark code. All data queries are processed through Snowpark on the Snowflake platform.”

Ratan Roy
Data Engineer, Sanofi

Collaborer avec les services professionnels de Snowflake

Lorsque Sanofi a décidé de migrer vers Snowpark depuis Spark, sa collaboration avec l’équipe des services professionnels de Snowflake a représenté une étape clé du parcours. 

« En toute franchise, notre expérience avec l’équipe des services professionnels a été très satisfaisante. L’équipe nous a apporté son soutien dès le début, en nous aidant à gérer et à identifier les éléments nécessaires pour réussir notre migration », confie Suku Muramula. « L’évaluation de l’état de préparation s’est révélée exceptionnelle. Elle nous a permis d’acquérir des informations précieuses sur le processus de migration et de garantir notre préparation pour établir les ressources et identifier les potentielles lacunes du processus », explique Suku Muramula.

Snowpark Migration Accelerator, un outil de conversion de code automatisé, a permis de convertir le code PySpark en code Snowpark et d’accélérer le processus de migration. « Cet outil révolutionnaire nous a aidés à avancer rapidement tout en nous assurant que le code reste intact. D’un point de vue global, j’encourage vivement les autres utilisateurs à faire appel à ces services professionnels lorsqu’ils débutent ce type de migration », confie Suku Muramula.

Simplifier le partage de données et la data science

Avec son application actuelle, l’équipe en charge des données de Sanofi se concentre sur un petit nombre de sources de données. Mais à l’avenir, elle prévoit d’utiliser de nouvelles sources de données pour permettre à la communauté médicale de réaliser des recherches sur davantage de maladies et de thérapies. 

« À mesure que nous avançons, nos procédures de collecte et de traitement des données continuent d’évoluer, ce qui nécessite la gestion de milliards de dossiers supplémentaires pour améliorer nos compétences analytiques », explique Suku Muramula. « Nous pensons que la plateforme Snowflake restera notre choix le plus fiable pour garantir l’évolutivité dynamique et la robustesse, et pour nous adapter sans difficulté à l’évolution constante du secteur. »

Démarrez votre essaigratuit de 30 jours

Essayez Snowflake gratuitement pendant 30 jours et découvrez le Data Cloud qui élimine la complexité, les coûts et les contraintes d’autres solutions.