Comment construire une plateforme d’analyse semi-structurée en continu sur Snowflake
'How to build a continuous semi-structured analytics platform on Snowflake'
La construction d’un datalake pour des données semi-structurées ou en format JSON a toujours été un défi. Imaginez si les documents JSON sont en streaming ou si ils proviennent en flux continu de fournisseurs de soins de santé, alors nous avons besoin d’une architecture moderne et robuste capable de traiter un volume aussi élevé. En même temps, la couche d’analyse a également besoin d’être…
Introduction
Snowflake est un SaaS, c’est-à-dire un logiciel en tant que service, qui convient parfaitement à l’analyse de grandes quantités de données. La plateforme est extrêmement facile à utiliser et convient aux utilisateurs professionnels, aux équipes d’analyse, etc., pour tirer parti des ensembles de données en constante augmentation. Cet article présente les composants de création d’une plateforme d’analyse semi-structurée en continu sur Snowflake pour les données de santé. Nous passerons également en revue certaines considérations clés pendant cette phase.
Contexte
Il existe de nombreux formats de données différents pris en charge par l’industrie de la santé dans son ensemble, mais nous considérerons l’un des derniers formats semi-structurés, à savoir FHIR (Fast Healthcare Interoperability Resources), pour la construction de notre plateforme d’analyse. Ce format contient généralement toutes les informations centrées sur le patient intégrées dans 1 document JSON. Ce format contient une multitude d’informations, telles que toutes les rencontres hospitalières, les résultats de laboratoire, etc. L’équipe d’analyse, lorsqu’elle dispose d’un lac de données interrogeable, peut extraire des informations précieuses telles que le nombre de patients diagnostiqués avec un cancer, etc. Supposons que tous ces fichiers JSON soient stockés sur AWS S3 (ou tout autre stockage cloud public) toutes les 15 minutes via différents services AWS ou points de terminaison API finaux.
- Comment changer de carrière de Data Analyst à Data Scientist?
- Raconter une histoire avec des graphiques
- Qu’est-ce que les données synthétiques ?
Conception architecturale
Composants architecturaux
AWS S3 vers la zone RAW de Snowflake :
- Les données doivent être continuellement diffusées depuis AWS S3 vers la zone RAW de Snowflake.
- Snowflake propose un service géré appelé Snowpipe, qui peut lire les fichiers JSON depuis S3 en continu.
- Une table avec une colonne variant doit être créée dans la zone RAW de Snowflake pour stocker les données JSON dans le format natif.
De la zone RAW de Snowflake aux flux :
- Les flux sont un service de capture des modifications de données géré qui sera essentiellement capable de capturer tous les nouveaux documents JSON entrants dans la zone RAW de Snowflake
- Les flux seront dirigés vers la table de la zone RAW de Snowflake et doivent être configurés pour append=true
- Les flux sont semblables à n’importe quelle table et peuvent être facilement interrogés.
Tâche 1 de Snowflake :
- La tâche Snowflake est un objet similaire à un planificateur. Des requêtes ou des procédures stockées peuvent être planifiées pour s’exécuter en utilisant des notations de tâches cron
- Dans cette architecture, nous créons la Tâche 1 pour récupérer les données des flux et les ingérer dans une table de mise en scène. Cette couche sera tronquée et rechargée
- Cela est fait pour garantir que les nouveaux documents JSON sont traités toutes les 15 minutes
Tâche 2 de Snowflake :
- Cette couche convertira le document JSON brut en tables de rapport que l’équipe d’analyse peut interroger facilement.
- Pour convertir les documents JSON en format structuré, la fonction lateral flatten de Snowflake peut être utilisée.
- Lateral flatten est une fonction facile à utiliser qui éclate les éléments de tableau imbriqués et peut être facilement extraite en utilisant la notation ‘:’.
Considérations clés
- Il est recommandé d’utiliser Snowpipe avec quelques gros fichiers. Les coûts peuvent augmenter si de petits fichiers sur un stockage externe ne sont pas regroupés
- Dans un environnement de production, assurez-vous de créer des processus automatisés pour surveiller les flux, car une fois qu’ils ne sont plus à jour, les données ne peuvent pas être récupérées à partir d’eux
- La taille maximale autorisée d’un seul document JSON compressé pouvant être chargé dans Snowflake est de 16 Mo. Si vous avez des documents JSON volumineux qui dépassent ces limites de taille, assurez-vous d’avoir un processus pour les diviser avant de les ingérer dans Snowflake
Conclusion
Gérer des données semi-structurées est toujours un défi en raison de la structure imbriquée des éléments intégrés dans les documents JSON. Tenez compte de l’augmentation progressive et exponentielle du volume de données entrantes avant de concevoir la couche de rapport finale. Cet article vise à démontrer à quel point il est facile de créer un pipeline en continu avec des données semi-structurées.
Milind Chaudhari est un ingénieur de données/architecte de données expérimenté qui a une décennie d’expérience dans la construction de lacs de données en utilisant une variété d’outils conventionnels et modernes. Il est extrêmement passionné par l’architecture de streaming de données et est également relecteur technique chez Packt & O’Reilly.
We will continue to update IPGirl; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Former des leaders de la sécurité nationale sur l’intelligence artificielle
- L’ennemi invisible de l’IA Confronter le défi de la ‘Matière Noire’ Numérique
- Transformer d’anciennes cartes en modèles numériques 3D de quartiers perdus
- Modèle informatique prédit les rendements des cultures
- Construire des pipelines de déploiement pour l’apprentissage automatique
- Deux techniques avancées de SQL qui peuvent considérablement améliorer vos requêtes
- Comment devenir un scientifique des données sans formation technique conseils et stratégies