Learning Hub

Data Streaming en Snowflake: carga en tiempo real

Escrito por Mimacom | 9 nov 2026, 8:00:01

Snowflake puede recibir datos en streaming y hacer que se puedan consultar en cuestión de segundos. Snowpipe Streaming escribe filas directamente en las tablas, el Snowflake Connector for Kafka lleva los topics a Snowflake sin ficheros intermedios y las Dynamic Tables mantienen actualizados los resultados transformados a medida que llegan datos nuevos. Lo que Snowflake no hace es sustituir a la propia plataforma de streaming. Es el destino de los flujos de eventos, no el sistema que los transporta ni el que actúa sobre ellos mientras están en movimiento. Esta guía explica las opciones de ingesta, cómo procesar y monitorizar los datos en streaming una vez que llegan y en qué casos un backbone de streaming como Apache Kafka sigue teniendo que hacer el trabajo.

Cómo gestiona Snowflake los datos en streaming

Durante la mayor parte de su historia, Snowflake cargaba los datos por lotes: los ficheros llegaban a un almacenamiento en la nube y se copiaban a las tablas de forma programada o poco después de llegar. Eso funciona bien para los informes, pero deja los dashboards, los modelos y las aplicaciones minutos u horas por detrás del negocio. El data streaming en Snowflake cierra esa brecha con una ingesta continua de filas, de modo que el warehouse refleja lo que pasó hace unos segundos y no lo que había en la última carga.

El papel de Snowflake en una arquitectura de streaming queda claro cuando separas tres tareas. Una plataforma de streaming como Kafka captura los eventos de los sistemas de origen y los entrega a todos los consumidores. Un procesador de streams filtra, combina y enriquece los eventos mientras están en movimiento. Snowflake almacena los resultados y permite que analistas, científicos de datos y aplicaciones de IA los consulten junto con los datos históricos. Snowflake es muy bueno en la tercera tarea, y cada vez más capaz en el procesamiento incremental una vez que los datos han llegado.

Streaming frente a Snowflake Streams: aclarar los nombres

En Snowflake, la palabra «stream» significa dos cosas distintas, y eso genera confusión en la documentación y en los resultados de búsqueda. La ingesta en streaming, con Snowpipe Streaming o con el conector de Kafka, es la forma en que los datos en movimiento entran en Snowflake. Un Stream de Snowflake es otra cosa: un objeto de base de datos que registra las inserciones, actualizaciones y eliminaciones que se hacen en una tabla, para que un proceso posterior trate solo lo que ha cambiado. Dicho de otro modo, la ingesta en streaming trae datos nuevos y los Streams ofrecen change data capture sobre los datos que ya están dentro.

Formas de enviar datos en streaming a Snowflake

Snowflake ofrece varias vías de ingesta, que se diferencian en cómo llegan los datos, en lo rápido que se pueden consultar y en cuánta infraestructura gestionas tú.

Cómo funcionaLatencia habitualIdeal para
SnowpipeCarga ficheros desde un stage de almacenamiento en la nube a medida que lleganMinutosCargas en micro-batch cuando los ficheros ya existen
Snowpipe Streaming (classic)Un SDK cliente escribe filas en las tablas a través de canales, con buffering en el clienteSegundosIntegraciones de streaming existentes, creadas antes de la nueva arquitectura
Snowpipe Streaming (high-performance)Los SDK o la API REST envían filas; Snowflake se encarga del buffering y la validación en el servidorUnos 5 segundos, según SnowflakeNuevas ingestas de baja latencia con alto throughput
Snowflake Connector for Kafka (v4)Sink de Kafka Connect construido sobre la arquitectura high-performanceUnos 5 segundos, según SnowflakeLlevar topics de Kafka a tablas de Snowflake
OpenflowConectores gestionados para orígenes como Kafka, Amazon Kinesis y bases de datosDepende del conectorEquipos que quieren que Snowflake gestione la capa de integración

Snowpipe frente a Snowpipe Streaming

Snowpipe y Snowpipe Streaming suenan parecido, pero resuelven problemas distintos. Snowpipe se basa en ficheros: un sistema anterior escribe ficheros en el almacenamiento en la nube y Snowpipe carga cada uno poco después de que aparezca. Cada carga espera a que un fichero se escriba y se cierre, así que la latencia se mide en minutos, y los ficheros pequeños y frecuentes añaden sobrecarga.

Snowpipe Streaming elimina el paso de los ficheros. Un cliente abre un canal hacia una tabla y escribe filas directamente, y cada canal sigue un offset token para que el cliente sepa qué filas ha confirmado Snowflake. La nueva arquitectura high-performance de Snowflake traslada el buffering y la validación del schema al servidor, y se factura por gigabyte ingerido. Snowflake habla de un throughput de gigabytes por segundo por tabla y de datos que se pueden consultar unos cinco segundos después de la ingesta. La versión original, con buffering en el cliente, se llama ahora Snowpipe Streaming classic.

De Kafka a Snowflake con el Snowflake Connector for Kafka

Para las organizaciones que ya trabajan con Apache Kafka, el Snowflake Connector for Kafka es la vía más directa. Funciona como un sink de Kafka Connect, lee de los topics y escribe en tablas de Snowflake. La versión 4 es una reescritura construida sobre la arquitectura high-performance de Snowpipe Streaming, con creación automática de tablas, evolución del schema en el servidor y errores que se escriben en una tabla que puedes consultar con SQL. Snowflake recomienda la v4 para las implantaciones nuevas; las versiones anteriores usan Snowpipe Streaming classic o Snowpipe basado en ficheros.

El conector lleva los datos de Kafka a Snowflake, pero no cambia el papel de Kafka. El mismo topic puede alimentar a la vez a Snowflake, a una base de datos operacional, a un modelo de detección de fraude y a un microservicio, y por eso la mayoría de las empresas mantienen Kafka como hub y tratan Snowflake como uno más de sus consumidores.

Conectores de Openflow

Openflow es el servicio de integración gestionado de Snowflake. Ofrece conectores para orígenes de streaming como Kafka y Amazon Kinesis, change data capture desde bases de datos operacionales y un sink de Kafka que devuelve datos desde Snowflake hacia fuera. Encaja con equipos que prefieren que Snowflake gestione la capa de integración en lugar de operar Kafka Connect por su cuenta, a cambio de atar esa capa a la plataforma de Snowflake.

Procesar datos en streaming dentro de Snowflake

Que los datos lleguen rápido solo sirve si las transformaciones siguen el ritmo. Snowflake tiene dos formas principales de procesar los datos nuevos de forma incremental, sin reconstruir las tablas desde cero.

Streams y Tasks para change data capture

Streams y Tasks es el patrón consolidado. Un Stream sobre una tabla en bruto registra qué filas han cambiado desde la última lectura, y una Task ejecuta SQL de forma programada o cuando el Stream tiene datos, por ejemplo para fusionar los pedidos nuevos en una tabla depurada. El patrón te da control total sobre cada paso, pero cada pipeline necesita sus propios Streams, Tasks y lógica de dependencias, lo que se vuelve difícil de mantener a medida que crecen los pipelines.

Dynamic Tables para pipelines declarativos

Las Dynamic Tables siguen un enfoque declarativo. Defines el resultado que quieres en SQL o Python y fijas un nivel de frescura objetivo, y Snowflake resuelve las dependencias y actualiza la tabla de forma incremental, procesando solo los datos que han cambiado desde la última actualización. El propio quickstart de Snowflake combina Snowpipe Streaming con Dynamic Tables para convertir eventos JSON en bruto en tablas listas para el análisis, y es una buena plantilla para la mayoría de los pipelines de streaming nuevos.

Cómo monitorizar las cargas de datos en streaming en Snowflake

Los pipelines de streaming fallan en silencio. Un conector puede dejar de confirmar datos, un canal puede quedarse atrás o un cambio de schema puede enviar filas a una tabla de errores, y nadie se da cuenta hasta que un dashboard muestra datos desfasados. La monitorización tiene que cubrir tanto el lado de Snowflake como el del origen. Una configuración práctica revisa lo siguiente:

  • La latencia y el throughput de los canales en la vista SNOWPIPE_STREAMING_CHANNEL_HISTORY, que informa del volumen de datos procesados, las tasas de error y la latencia media de procesamiento por canal
  • Los offset tokens confirmados de cada canal, comparados con los últimos offsets del origen, para medir cuánto se retrasa la ingesta
  • La tabla de errores que usa la v4 del conector de Kafka, para que las filas rechazadas se detecten y se corrijan en lugar de perderse
  • El consumer lag en el lado de Kafka, que muestra los problemas antes de que lleguen a Snowflake
  • La frescura de las Dynamic Tables frente a su target lag, para que las transformaciones lentas no queden ocultas tras una ingesta rápida

Las alertas deberían saltar por el lag y las tasas de error, no solo cuando algo falla del todo, porque un pipeline que funciona pero se va quedando atrás es el problema más habitual. La propiedad también importa: cada tabla de streaming necesita un equipo responsable, y ahí es donde dan resultado las prácticas de stream governance, como las reglas de schema y el lineage.

Cuándo no basta con el streaming de Snowflake

El streaming de Snowflake es la opción adecuada cuando el objetivo son analíticas actualizadas, informes y features para machine learning. No está pensado para tomar decisiones sobre eventos individuales en milisegundos, como bloquear un pago o desviar un envío. Esas decisiones tienen que tomarse en el propio stream, antes de que los datos lleguen a ningún sitio, con un procesador de streams como Apache Flink o con streaming SQL sobre Kafka.

El otro límite es el alcance. Cuando los mismos eventos tienen que alimentar sistemas operacionales, otras plataformas de analítica y agentes de IA, además de Snowflake, hacer pasar todo por el warehouse crea un cuello de botella y una dependencia única. Una plataforma de streaming en el centro, con Snowflake como uno de los destinos, mantiene actualizados a todos los consumidores. Para una comparación más completa de estas arquitecturas, consulta streamhouse vs. lakehouse vs. data warehouse.

Preguntas frecuentes

¿Snowflake admite data streaming en tiempo real?

Sí, para la ingesta y la analítica. Snowpipe Streaming y el conector de Kafka hacen que las filas se puedan consultar en segundos, y las Dynamic Tables mantienen actualizados los resultados transformados. Snowflake no es un procesador de streams, así que las decisiones que deben tomarse sobre cada evento en milisegundos corresponden a una plataforma de streaming situada antes.

¿Qué diferencia hay entre Snowpipe y Snowpipe Streaming?

Snowpipe carga ficheros desde el almacenamiento en la nube cuando llegan, así que la latencia suele medirse en minutos. Snowpipe Streaming escribe filas directamente en las tablas a través de canales, sin crear ficheros, de modo que los datos se pueden consultar en segundos.

¿Qué son los Snowflake Streams?

Un Stream de Snowflake es un objeto que registra las inserciones, actualizaciones y eliminaciones de una tabla para que los procesos posteriores, normalmente Tasks, traten solo los cambios. Los Streams ofrecen change data capture dentro de Snowflake. No son una forma de ingerir datos en streaming desde fuera.

¿Cómo se envían datos en streaming de Kafka a Snowflake?

La vía más habitual es el Snowflake Connector for Kafka, que funciona como un sink de Kafka Connect y escribe los topics en tablas de Snowflake mediante Snowpipe Streaming. Openflow ofrece una alternativa gestionada. En cualquier caso, Kafka sigue siendo el sistema que captura los eventos y da servicio a todos los demás consumidores.

Cómo puede ayudarte Mimacom

En Mimacom construimos plataformas de Apache Kafka desde 2017 e implantamos IBM Confluent como partner de IBM. Diseñamos el backbone de streaming que alimenta a Snowflake y a cualquier otro sistema que necesite datos actualizados, configuramos los conectores y las reglas de schema para que la ingesta no se rompa cuando cambian los orígenes, y ponemos en marcha la monitorización para detectar el lag y los errores antes de que lo noten tus usuarios. El resultado es un pipeline en el que tus equipos de analítica y de IA pueden confiar, sin convertir el warehouse en el centro de tu arquitectura en tiempo real.

Snowflake es el destino, el streaming es el sistema

Snowflake se ha convertido en un buen lugar para los datos en streaming: las filas llegan en segundos, las Dynamic Tables mantienen los resultados actualizados y las vistas integradas permiten medir la ingesta. La arquitectura funciona mejor cuando cada parte hace su propio trabajo, con una plataforma de streaming que captura y distribuye los eventos y Snowflake que los almacena y analiza. Si estás planificando el pipeline, empieza por nuestra guía sobre integración de datos en streaming.

Habla con nuestro equipo de IBM Confluent sobre cómo construir un pipeline de streaming que mantenga Snowflake actualizado al segundo.

Descubre nuestros servicios de Confluent · Contacta con nosotros