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

Inteligencia Artificial

Generación automática de música utilizando Aprendizaje Profundo

Históricamente, la música ha sido un poderoso indicador del esfuerzo artístico humano. Actualmente, la confluencia de...

Inteligencia Artificial

Línea Open-Sources ‘japanese-large-lm’ Un modelo de lenguaje japonés con 3.6 mil millones de parámetros

Desde noviembre de 2020, LINE se ha embarcado en un viaje transformador de investigación y desarrollo para crear y ap...

Inteligencia Artificial

El viaje de la IA hacia la IA generativa y cómo funciona

Este artículo discute los conceptos básicos de IA/ML, su uso, la evolución de la IA generativa, la ingeniería de inst...

Inteligencia Artificial

Mapeando los atascos Análisis del tráfico utilizando teoría de grafos

La teoría de grafos tiene muchas aplicaciones en problemas de la vida real, como redes sociales, biología molecular o...

Inteligencia Artificial

LLMs y Análisis de Datos Cómo la IA está dando sentido a los grandes datos para obtener información empresarial

Los Modelos de Lenguaje Grandes (LLMs, por sus siglas en inglés) tienen la capacidad de analizar extensos conjuntos d...