Обзор
- Как настроить Kafka на Ubuntu
- Настроить приём потока данных в топик Kafka
- Создать таблицу ClickHouse, которая подписывается на топик
1. Настройка Kafka на Ubuntu
- Создайте Ubuntu-инстанс ec2 и подключитесь к нему по SSH:
- Установите Kafka (по инструкции здесь: https://www.linode.com/docs/guides/how-to-install-apache-kafka-on-ubuntu/):
- Запустите ZooKeeper:
- Откройте новую консоль и запустите Kafka:
- Откройте третью консоль и создайте топик под названием wikimedia:
- Вы можете проверить, что он был успешно создан, выполнив:
2. Приём потока Wikimedia в Kafka
- Сначала понадобятся несколько утилит:
- Данные отправляются в Kafka с помощью хитроумной команды curl, которая получает последние события Wikimedia, извлекает JSON и отправляет его в топик Kafka:
- Вы можете посмотреть описание топика:
- Давайте убедимся, что всё работает, обработав несколько событий:
- Нажмите Ctrl+c, чтобы прервать выполнение предыдущей команды.
3. Приём данных в ClickHouse
- Вот как выглядят входящие данные:
- Нам понадобится движок таблицы Kafka, чтобы считывать данные из топика Kafka:
- По какой-то причине движок таблицы Kafka, похоже, берёт публичный URL ec2 и преобразует его в частное DNS-имя, поэтому мне пришлось добавить его в локальный файл
/etc/hosts:
- Вы можете считывать данные из таблицы Kafka — для этого нужно лишь включить одну настройку:
- Нам нужна таблица MergeTree для хранения поступающих событий:
- Давайте определим materialized view, которое будет срабатывать при вставке в таблицу Kafka и отправлять данные в нашу таблицу rawEvents:
- Почти сразу вы увидите, как данные начинают поступать в rawEvents:
- Давайте посмотрим на несколько строк:
- Давайте посмотрим, какие типы событий поступают:
- Чтобы увидеть результаты, нам понадобятся функции -Merge: