Saltar al contenido principal

Kafka y el tipo de datos JSON

Con la introducción del nuevo tipo de datos JSON, ClickHouse es ahora una buena opción como base de datos para analizar JSON. En esta guía, aprenderemos a cargar mensajes JSON desde Apache Kafka directamente en una sola columna JSON de ClickHouse.

Configurar Kafka

Empecemos ejecutando un broker de Kafka en nuestra máquina. También vamos a mapear el puerto 9092 al puerto 9092 de nuestro sistema operativo anfitrión para que sea más fácil interactuar con Kafka:

Ingesta de datos en Kafka

Una vez que esté en funcionamiento, necesitamos ingestar algunos datos. El feed de cambios recientes de Wikimedia es una buena fuente de datos en tiempo real, así que vamos a ingestarlo en el topic wiki_events:
Podemos comprobar que la ingesta de datos se está realizando ejecutando el siguiente comando:
Hasta aquí, todo bien.

Ingestar datos en ClickHouse

A continuación, ingestaremos los datos en ClickHouse. Primero, habilitemos el tipo JSON (que actualmente es experimental) estableciendo la siguiente propiedad:
Ahora, crearemos la tabla wiki_queue, que utiliza el motor de tabla Kafka.
Ten en cuenta que estamos usando el formato JSONAsObject, que garantiza que los mensajes entrantes estén disponibles como un objeto JSON. Este formato solo puede analizarse en una tabla que tenga una única columna del tipo JSON. A continuación, crearemos la tabla base para almacenar los datos de Wiki:
Por último, vamos a crear una vista materializada para poblar la tabla wiki:

Consulta de datos JSON en ClickHouse

Luego podemos escribir consultas sobre la tabla wiki. Por ejemplo, podríamos contar la cantidad de bots que han realizado cambios:
O podríamos averiguar qué usuarios hacen más cambios en en.wikipedia.org:
Última modificación el 19 de junio de 2026