Descripción general
- Cómo configurar Kafka en Ubuntu
- Ingestar un flujo de datos en un topic de Kafka
- Crear una tabla de ClickHouse que se suscriba al topic
- Cree una instancia ec2 de Ubuntu y conéctese a ella por SSH:
- Instala Kafka (siguiendo las instrucciones de aquí: https://www.linode.com/docs/guides/how-to-install-apache-kafka-on-ubuntu/):
- Inicie ZooKeeper:
- Abre una nueva terminal e inicia Kafka:
- Abra una tercera consola y cree un topic llamado wikimedia:
- Puedes verificar que se haya creado correctamente de la siguiente manera:
2. Ingestar el flujo de Wikimedia a Kafka
- Primero necesitamos algunas utilidades:
- Los datos se envían a Kafka mediante un ingenioso comando curl que obtiene los eventos más recientes de Wikimedia, extrae los datos JSON y los envía al topic de Kafka:
- Puede “describir” el topic:
- Verifiquemos que todo funcione correctamente consumiendo algunos eventos:
- Pulsa Ctrl+c para detener el comando anterior.
3. Ingestar los datos en ClickHouse
- Este es el aspecto de los datos entrantes:
- Necesitaremos el motor de tabla Kafka para extraer los datos del topic de Kafka:
- Por alguna razón, el motor de tabla Kafka parece tomar la URL pública de ec2 y convertirla en el nombre DNS privado, así que tuve que añadirlo a mi archivo local
/etc/hosts:
- Puedes leer de una tabla de Kafka; solo tienes que habilitar una opción de configuración:
- Necesitamos una tabla MergeTree para almacenar estos eventos entrantes:
- Definamos una vista materializada que se active cuando se realice una inserción en la tabla Kafka y envíe los datos a nuestra tabla rawEvents:
- Deberías empezar a ver datos en rawEvents casi de inmediato:
- Veamos algunas de las filas:
- Veamos qué tipos de eventos están llegando:
- Necesitaremos las funciones -Merge para ver los resultados: