Skip to main content

Kafka и тип данных JSON

С появлением нового типа данных JSON ClickHouse стал отличным выбором для анализа JSON-данных. В этом руководстве мы разберём, как загружать JSON-сообщения из Apache Kafka напрямую в один столбец JSON в ClickHouse.

Настройка Kafka

Давайте начнем с запуска брокера Kafka на нашей машине. Мы также пробросим порт 9092 на порт 9092 хостовой операционной системы, чтобы упростить взаимодействие с Kafka:

Приём данных в Kafka

После этого нужно выполнить приём данных. Лента недавних изменений Wikimedia — хороший источник потоковых данных, поэтому выполним приём в топик wiki_events:
Мы можем проверить, что идёт приём данных, выполнив следующую команду:
Пока всё хорошо.

Приём данных в ClickHouse

Далее настроим приём данных в ClickHouse. Сначала включим тип JSON (который пока является экспериментальным), задав следующий параметр:
Теперь создадим таблицу wiki_queue на движке таблицы Kafka.
Обратите внимание, что мы используем формат JSONAsObject, который обеспечивает представление входящих сообщений в виде объекта JSON. Этот формат можно разобрать только в таблицу, у которой есть один столбец с типом JSON. Далее мы создадим базовую таблицу для хранения данных Wiki:
Наконец, давайте создадим materialized view для заполнения таблицы wiki:

Выполнение запросов к JSON-данным в ClickHouse

Затем мы можем выполнять запросы к таблице wiki. Например, можно подсчитать количество ботов, которые внесли изменения:
Или можно узнать, какие пользователи вносят больше всего изменений на en.wikipedia.org:
Последнее изменение 3 июля 2026 г.