Saltar al contenido principal
En este artículo, desglosamos un tutorial que te muestra cómo hacer streaming de datos de SQL Server a ClickHouse. ClickHouse es ideal si buscas analítica ultrarrápida para informes y dashboards internos o de cara al cliente. Te guiaremos paso a paso para configurar ambas bases de datos, conectarlas y, por último, usar Streamkap para transmitir tus datos. Si SQL Server gestiona tus operaciones diarias, pero necesitas la velocidad y la potencia de ClickHouse para analítica, estás en el lugar adecuado.

¿Por qué transmitir datos de SQL Server a ClickHouse?

Si estás aquí, probablemente ya conozcas el problema: SQL Server es muy fiable para las transacciones, pero sencillamente no está diseñado para ejecutar consultas analíticas complejas en tiempo real. Ahí es donde ClickHouse destaca. ClickHouse está diseñado para analítica, con agregaciones e informes ultrarrápidos, incluso sobre conjuntos de datos enormes. Por eso, configurar una pipeline de CDC en streaming para enviar tus datos transaccionales a ClickHouse te permite ejecutar informes a gran velocidad, ideales para operaciones, equipos de producto o dashboards para clientes. Casos de uso típicos:
  • Informes internos sin ralentizar las aplicaciones de producción
  • Dashboards de cara al cliente que deben ser rápidos y estar siempre actualizados
  • Streaming de eventos, como mantener al día los logs de actividad de los usuarios para analítica

Lo que necesitarás para empezar

Antes de entrar en materia, esto es lo que deberías tener preparado:

Requisitos previos

  • Una instancia de SQL Server en funcionamiento
  • Para este tutorial, usamos AWS RDS para SQL Server, pero cualquier instancia moderna de SQL Server sirve.Configurar AWS SQL Server desde cero.
  • Una instancia de ClickHouse
  • Autogestionada o en la nube.Configurar ClickHouse desde cero.
  • Streamkap
  • Esta herramienta será la base de tu pipeline de streaming de datos.

Información de la conexión

Asegúrate de tener:
  • La dirección del servidor, el puerto, el nombre de usuario y la contraseña de SQL Server. Se recomienda crear un usuario y un rol independientes para que Streamkap pueda acceder a tu base de datos de SQL Server.Consulta nuestra documentación sobre la configuración.
  • La dirección del servidor, el puerto, el nombre de usuario y la contraseña de ClickHouse. Las listas de acceso IP de ClickHouse determinan qué servicios pueden conectarse a tu base de datos de ClickHouse.Sigue las instrucciones aquí.
  • Las tablas que quieres sincronizar; por ahora, empieza con una sola

Configurar SQL Server como origen

¡Vamos a ello!

Paso 1: Crear un origen de SQL Server en Streamkap

Empezaremos por configurar la conexión del origen. Así es como Streamkap sabe de dónde capturar los cambios. Así se hace:
  1. Abre Streamkap y ve a la sección de fuentes.
  2. Crea una fuente nueva.
  • Asignále un nombre fácil de reconocer (p. ej., sqlserver-demo-source).
  1. Completa los datos de conexión de SQL Server:
  • Host (p. ej., your-db-instance.rds.amazonaws.com)
  • Puerto (el puerto predeterminado de SQL Server es 3306)
  • Nombre de usuario y contraseña
  • Nombre de la base de datos

Qué ocurre en segundo plano

Cuando configures esto, Streamkap se conectará a tu SQL Server y detectará las tablas. Para esta demo, elegiremos una tabla que ya reciba algunos datos, como eventos o transacciones.

Crear un destino de ClickHouse

Ahora vamos a configurar el destino al que enviaremos todos estos datos.

Paso 2: Agregar un destino de ClickHouse en Streamkap

Al igual que con el origen, crearemos un destino con los datos de conexión de ClickHouse.

Pasos:

  1. Ve a la sección de destinos de Streamkap.
  2. Añade un nuevo destino y elige ClickHouse como tipo de destino.
  3. Introduce los datos de ClickHouse:
  • Host
  • Puerto (el valor predeterminado es 9000)
  • Nombre de usuario y contraseña
  • Nombre de la base de datos
Captura de pantalla de ejemplo: añadir un nuevo destino de ClickHouse en el panel de Streamkap.

Modo upsert: ¿Qué es esto?

Este es un paso importante: queremos usar el modo «upsert» de ClickHouse, que (internamente) utiliza el motor ReplacingMergeTree de ClickHouse. Esto nos permite fusionar los registros entrantes de forma eficiente y gestionar las actualizaciones después de la ingesta, mediante lo que ClickHouse denomina «fusión de partes».
  • Esto garantiza que la tabla de destino no se llene de duplicados cuando haya cambios en SQL Server.

Gestión de la evolución del esquema

A veces, ClickHouse y SQL Server no tienen las mismas columnas, especialmente cuando tu aplicación ya está en producción y los desarrolladores siguen añadiendo columnas sobre la marcha.
  • La buena noticia es que Streamkap puede gestionar la evolución básica del esquema. Esto significa que, si añades una nueva columna en SQL Server, también aparecerá en ClickHouse.
Solo tienes que seleccionar “evolución del esquema” en la configuración del destino. Siempre puedes ajustarlo más adelante según sea necesario.

Creación del pipeline de streaming

Con el origen y el destino definidos, llega la parte divertida: ¡transmitir los datos en streaming!

Paso 3: Configura el pipeline en Streamkap

Configuración del pipeline

  1. Ve a la pestaña Pipelines en Streamkap.
  2. Crea un pipeline nuevo.
  3. Selecciona tu origen de SQL Server (sqlserver-demo-source).
  4. Selecciona tu destino de ClickHouse (clickhouse-tutorial-destination).
  5. Elige la tabla cuyos datos quieres transmitir; supongamos que es events.
  6. Configura la captura de cambios de datos (CDC).
  • Para esta ejecución, transmitiremos datos nuevos (si quieres, puedes omitir la carga histórica al principio y centrarte en los eventos de CDC).
Captura de pantalla de la configuración del pipeline: selección de origen, destino y tabla.

¿Deberías hacer una carga retroactiva?

Puede que te lo preguntes: ¿debería hacer una carga retroactiva de datos antiguos? En muchos casos de analítica, quizá prefieras simplemente empezar a transmitir los cambios en streaming a partir de ahora, pero siempre puedes volver después y cargar también los datos anteriores. Por ahora, simplemente elige “no hacer carga retroactiva”, a menos que tengas una necesidad concreta.

Streaming en acción: qué esperar

¡Ahora tu pipeline ya está configurado y activo!

Paso 4: Observa el flujo de datos

Esto es lo que ocurre:
  • A medida que llegan nuevos datos a la tabla de origen en SQL Server, el pipeline de Streamkap captura el cambio y lo envía a ClickHouse.
  • ClickHouse (gracias a ReplacingMergeTree y a la combinación de partes) ingiere estas filas y fusiona las actualizaciones.
  • El esquema se mantiene al día: añade columnas en SQL Server y también aparecerán en ClickHouse.
Un dashboard en tiempo real o logs que muestren cómo aumentan los recuentos de filas en ClickHouse y SQL Server en tiempo real. Puedes ver claramente cómo aumentan las filas en ClickHouse a medida que SQL Server recibe datos.
-- Ejemplo: Comprobación de filas en ClickHouse 
SELECT COUNT(*) FROM analytics.events; |
Es de esperar cierto retraso en escenarios de alta carga, pero en la mayoría de los casos de uso se obtiene streaming casi en tiempo real.

Entre bastidores: ¿qué hace realmente Streamkap?

Para que te hagas una idea:
  • Streamkap supervisa el registro binario de SQL Server (el mismo registro que se usa para la replicación).
  • En cuanto insertas, actualizas o eliminas una fila en tu tabla, Streamkap captura el evento.
  • Convierte el evento en algo que ClickHouse puede entender y lo envía, aplicando los cambios al instante en tu base de datos analítica.
Esto no es solo ETL: es CDC (captura de cambios de datos) en tiempo real.

Opciones avanzadas

Modos Upsert vs. Insert

¿Cuál es la diferencia entre simplemente insertar cada fila (Insert Mode) y asegurarse de que también se reflejen las actualizaciones y eliminaciones (Upsert Mode)?
  • Insert Mode: Cada fila nueva se añade; incluso si es una actualización, obtendrás duplicados.
  • Upsert Mode: Las actualizaciones de las filas existentes sobrescriben los datos ya presentes, mucho mejor para mantener los análisis actualizados y limpios.

Gestión de cambios de esquema

Las aplicaciones cambian, y tus esquemas también. Con este pipeline:
  • ¿Añadir una columna nueva a tu tabla operativa? Streamkap la detectará y la añadirá también en ClickHouse.
  • ¿Eliminar una columna? Según la configuración, puede que necesites una migración, pero la mayoría de las incorporaciones se realizan sin problemas.

Supervisión en producción: seguimiento del pipeline

Comprobación del estado del pipeline

Streamkap ofrece un panel donde puedes:
  • Ver el retraso del pipeline (¿qué tan actualizados están tus datos?)
  • Supervisar el recuento de filas y el rendimiento
  • Recibir alertas si algo no va bien
Ejemplo de panel: gráfico de latencia, recuento de filas e indicadores de estado.

Métricas comunes que conviene vigilar

  • Retraso: ¿Cuánto se ha rezagado ClickHouse respecto a SQL Server?
  • Rendimiento: Filas por segundo
  • Tasa de errores: Debería ser cercana a cero

Pasar a producción: consultar ClickHouse

Ahora que tus datos ya están en ClickHouse, puedes consultarlos con todas esas herramientas de análisis rápidas. Aquí tienes un ejemplo básico:
-- Ver los 10 usuarios más activos en la última hora
SELECT user\_id, COUNT(*) AS actionsFROM analytics.eventsWHERE event\_time >= now() - INTERVAL 1 HOURGROUP BY user\_idORDER BY actions DESCLIMIT 10;
Combina ClickHouse con herramientas de visualización como Grafana, Superset o Redash para obtener informes completos.

Próximos pasos y profundizaciones

Este recorrido apenas muestra una pequeña parte de lo que puedes hacer. Ahora que ya dominas lo básico, esto es lo siguiente que puedes explorar:
  • Configurar flujos filtrados (sincronizar solo algunas tablas/columnas)
  • Hacer streaming desde múltiples orígenes hacia una única base de datos analítica
  • Combinar esto con S3/lagos de datos para almacenamiento en frío
  • Automatizar las migraciones de esquema cuando cambies las tablas
  • Proteger tu pipeline con SSL y reglas de firewall
No pierdas de vista el blog de Streamkap para consultar guías más detalladas.

FAQ y solución de problemas

P: ¿Esto funciona con bases de datos en la nube? R: ¡Sí! En este ejemplo usamos AWS RDS. Solo asegúrate de abrir los puertos adecuados. P: ¿Y el rendimiento? R: ClickHouse es rápido. El cuello de botella suele ser la red o la velocidad del binlog de la base de datos de origen, pero en la mayoría de los casos verás un retraso de menos de un segundo. P: ¿También admite eliminaciones? R: Por supuesto. En modo upsert, las eliminaciones también se marcan y se procesan en ClickHouse.

Para terminar

Aquí tienes una visión completa de cómo llevar tus datos de SQL Server a ClickHouse en streaming con Streamkap. Es una solución rápida, flexible e ideal para equipos que necesitan analítica casi en tiempo real sin sobrecargar sus bases de datos de producción. ¿Listo para probarlo? Ve a la página de registro y avísanos si quieres que tratemos temas como:
  • Upsert vs. Insert y los pormenores de ambos
  • Latencia de extremo a extremo: ¿qué tan rápido puedes obtener tu vista analítica final?
  • Optimización del rendimiento y throughput
  • Dashboards reales sobre esta stack
¡Gracias por leer! ¡Feliz streaming!
Última modificación el 10 de junio de 2026