Cómo construir una plataforma de análisis semi-estructurado en tiempo real en Snowflake

'How to build a real-time semi-structured analysis platform on Snowflake'

Construir un datalake para datos semi-estructurados o json siempre ha sido un desafío. Imagina si los documentos json se transmiten o fluyen continuamente desde proveedores de atención médica, entonces necesitamos una arquitectura moderna y robusta que pueda manejar un volumen tan alto. Al mismo tiempo, la capa de análisis también debe ser…

Introducción

Snowflake es un SaaS, es decir, un software como servicio que es ideal para ejecutar análisis en grandes volúmenes de datos. La plataforma es extremadamente fácil de usar y es adecuada para usuarios empresariales, equipos de análisis, etc., para obtener valor de los conjuntos de datos cada vez mayores. Este artículo describirá los componentes de la creación de una plataforma de análisis semi-estructurado en tiempo real en Snowflake para datos de atención médica. También repasaremos algunas consideraciones clave durante esta fase.

Contexto

Existen muchos formatos de datos diferentes que la industria de la atención médica en su conjunto admite, pero consideraremos uno de los últimos formatos semi-estructurados, es decir, FHIR (Fast Healthcare Interoperability Resources), para construir nuestra plataforma de análisis. Este formato generalmente contiene toda la información centrada en el paciente incrustada en 1 documento JSON. Este formato contiene una gran cantidad de información, como todos los encuentros hospitalarios, resultados de laboratorio, etc. El equipo de análisis, al proporcionar un lago de datos consultable, puede extraer información valiosa, como cuántos pacientes fueron diagnosticados con cáncer, etc. Supongamos que todos estos archivos JSON se cargan en AWS S3 (u otro almacenamiento en la nube pública) cada 15 minutos a través de diferentes servicios de AWS o puntos finales de API.

Diseño Arquitectónico

Componentes Arquitectónicos

AWS S3 a la zona RAW de Snowflake:

  1. Los datos deben ser transmitidos continuamente desde AWS S3 a la zona RAW de Snowflake.
  2. Snowflake ofrece el servicio gestionado Snowpipe, que puede leer archivos JSON de S3 de forma continua.
  3. Se debe crear una tabla con una columna variante en la zona RAW de Snowflake para almacenar los datos JSON en su formato nativo.

Zona RAW de Snowflake a Streams:

  1. Streams es un servicio de captura de cambios gestionado que será capaz de capturar todos los nuevos documentos JSON entrantes en la zona RAW de Snowflake
  2. Las Streams estarían apuntando a la tabla de la zona RAW de Snowflake y deberían configurarse con append=true
  3. Las Streams son como cualquier otra tabla y se pueden consultar fácilmente.

Tarea 1 de Snowflake:

  1. La tarea de Snowflake es un objeto similar a un programador. Las consultas o procedimientos almacenados se pueden programar para que se ejecuten utilizando notaciones de trabajos cron
  2. En esta arquitectura, creamos la Tarea 1 para obtener los datos de las Streams e ingresarlos en una tabla de preparación. Esta capa se truncaría y volvería a cargar
  3. Esto se hace para asegurarse de que los nuevos documentos JSON se procesen cada 15 minutos

Tarea 2 de Snowflake:

  1. Esta capa convertirá el documento JSON sin procesar en tablas de informes que el equipo de análisis puede consultar fácilmente.
  2. Para convertir los documentos JSON en formato estructurado, se puede usar la función lateral flatten de Snowflake.
  3. Lateral flatten es una función fácil de usar que explota los elementos de matriz anidados y se puede extraer fácilmente utilizando la notación ‘:’.

Consideraciones Clave

  1. Se recomienda utilizar Snowpipe con algunos archivos grandes. El costo puede aumentar si los archivos pequeños en el almacenamiento externo no se agrupan
  2. En un entorno de producción, asegúrese de crear procesos automatizados para monitorear las Streams, ya que una vez que se vuelven obsoletas, no se puede recuperar datos de ellas
  3. El tamaño máximo permitido de un solo documento JSON comprimido que se puede cargar en Snowflake es de 16 MB. Si tiene documentos JSON grandes que exceden estos límites de tamaño, asegúrese de tener un proceso para dividirlos antes de ingresarlos en Snowflake

Conclusión

La gestión de datos semi-estructurados siempre es un desafío debido a la estructura anidada de los elementos incrustados dentro de los documentos JSON. Considere el aumento gradual y exponencial del volumen de datos entrantes antes de diseñar la capa de informes final. Este artículo tiene como objetivo demostrar lo fácil que es construir un canal de transmisión con datos semi-estructurados.

Milind Chaudhari es un experimentado ingeniero de datos/arquitecto de datos que tiene una década de experiencia laboral en la construcción de lagos/lakehouses de datos utilizando una variedad de herramientas convencionales y modernas. Es extremadamente apasionado por la arquitectura de transmisión de datos y también es revisor técnico en Packt y O’Reilly.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Aprendizaje Automático

Construir un Sistema de Recomendación Utilizando Google Cloud.

Implementar un sistema de recomendación altamente avanzado utilizando la IA de recomendación de Google Cloud.

Inteligencia Artificial

Decodificación anticipada un algoritmo de decodificación paralela para acelerar la inferencia de LLM

Aunque los modelos de lenguaje grandes (LLM) como GPT-4 y LLaMA están reimaginando rápidamente las aplicaciones moder...

Inteligencia Artificial

ChatGPT obtiene una puntuación en el 1% superior en la prueba de creatividad humana

La inteligencia artificial (IA) ha alcanzado nuevas alturas, según una investigación realizada por la Universidad de ...

Inteligencia Artificial

Los ganadores de la beca Memorial HPC George Michael 2023 de ACM-IEEE CS han sido nombrados

ACM y IEEE anunciaron los beneficiarios de las Becas ACM-IEEE CS George Michael Memorial HPC 2023.

Inteligencia Artificial

Google IA presenta Mirasol3B un modelo autoregresivo multimodal para el aprendizaje a través de modalidades de audio, video y texto

En el amplio campo del aprendizaje automático, decodificar las complejidades incrustadas en diversas modalidades, com...