Открыть меню
Платформа Эра. Документация
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Подключение Kafka и Clickhouse: различия между версиями

Материал из Платформа Эра. Документации
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 20: Строка 20:
💻 Репозиторий на GitHub: https://github.com/ClickHouse/ClickHouse
💻 Репозиторий на GitHub: https://github.com/ClickHouse/ClickHouse


==== Показания для перехода на Kafka и Clickhouse ====
==== Показания для подключения Kafka и Clickhouse ====


* Использование более 10 млн строк в архивных таблицах (классы Archive*);
* Использование более 10 млн строк в архивных таблицах (классы Archive*);
Строка 30: Строка 30:
СУБД Clickhouse используется только для хранения архивных таблица статистики. Для хранения остальных классов (таблиц) продолжает использоваться СУБД PostgreSQL.  
СУБД Clickhouse используется только для хранения архивных таблица статистики. Для хранения остальных классов (таблиц) продолжает использоваться СУБД PostgreSQL.  


==== Порядок перехода ====
==== Порядок подключения ====


===== 1. Разверните Kafka и Clickhouse =====
===== 1. Разверните Kafka и Clickhouse =====
Поднять Kafka и Clickhouse доступные друг другу
1.1 Установка Kafka<syntaxhighlight lang="abl">
Установите Java (Kafka требует Java 8 или выше):
bash
sudo apt update
sudo apt install openjdk-11-jre -y
 
Скачайте Kafka (замените версию на актуальную, например, 3.6.1):
bash
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
 
Распакуйте архив:
bash
tar -xzf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 /opt/kafka
 
Запустите Zookeeper (встроен в Kafka):
bash
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
 
Запустите Kafka-сервер:
bash
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
 
Готово! Kafka работает на стандартном порту 9092. Для проверки создайте тестовую тему:
bash
/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
</syntaxhighlight>2.2 Установка Clickhouse<syntaxhighlight lang="abl">
Добавьте репозиторий ClickHouse:
bash
sudo apt update
sudo apt install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://repo.clickhouse.com/deb/stable/ main/" | sudo tee /etc/apt/sources.list.d/clickhouse.list
 
Установите ClickHouse:
bash
sudo apt update
sudo apt install -y clickhouse-server clickhouse-client
 
Запустите сервер:
bash
sudo systemctl start clickhouse-server
sudo systemctl enable clickhouse-server
 
Готово! ClickHouse работает на порту 8123 (HTTP) и 9000 (TCP). Проверьте статус:
bash
sudo systemctl status clickhouse-server
 
Для подключения используйте:
bash
clickhouse-client
</syntaxhighlight>


===== 2. Создайте хранилища в Платформе =====
===== 2. Создайте хранилища в Платформе =====

Текущая версия от 15:59, 2 апреля 2025

Краткое описание архитектуры Kafka и СУБД Clickhouse

Связка Kafka и ClickHouse широко используется для хранения и обработки больших объёмов статистики, особенно в системах, где данные поступают непрерывно и в реальном времени. Kafka в этом тандеме выполняет роль промежуточного буфера: она собирает события из платформы Эра и надёжно сохраняет их в очередях — топиках. Kafka обеспечивает масштабируемость, высокую отказоустойчивость и гарантированную доставку данных, даже если аналитическая система временно недоступна.

ClickHouse, в свою очередь, используется как высокопроизводительная аналитическая база данных, идеально подходящая для хранения больших массивов информации и молниеносного выполнения SQL-запросов. Благодаря колонковой архитектуре и эффективной компрессии, ClickHouse позволяет выполнять сложную аналитику на миллиардах строк практически мгновенно. В сочетании с Kafka получается гибкая, надёжная и масштабируемая архитектура: данные поступают в реальном времени, хранятся с минимальными затратами и мгновенно доступны для анализа, визуализации и построения отчётов.

🔗 Apache Kafka

📌 Официальный сайт: https://kafka.apache.org

📚 Документация: https://kafka.apache.org/documentation/

💻 Репозиторий на GitHub: https://github.com/apache/kafka

🔗 ClickHouse

📌 Официальный сайт: https://clickhouse.com

📚 Документация: https://clickhouse.com/docs/en/

💻 Репозиторий на GitHub: https://github.com/ClickHouse/ClickHouse

Показания для подключения Kafka и Clickhouse

  • Использование более 10 млн строк в архивных таблицах (классы Archive*);
  • Наличие значимых таймаутов при построении отчетов (более 30 секунд);
  • Причём коробочный предельный таймаут построения отчетов 60 секунд;

Ожидаемый эффект - таймаут не более 1 секунды. Время построения отчетов не зависит от количества строк в архивных классах (таблицах).

СУБД Clickhouse используется только для хранения архивных таблица статистики. Для хранения остальных классов (таблиц) продолжает использоваться СУБД PostgreSQL.

Порядок подключения

1. Разверните Kafka и Clickhouse

1.1 Установка Kafka

Установите Java (Kafka требует Java 8 или выше):
bash
sudo apt update
sudo apt install openjdk-11-jre -y

Скачайте Kafka (замените версию на актуальную, например, 3.6.1):
bash
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz

Распакуйте архив:
bash
tar -xzf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 /opt/kafka

Запустите Zookeeper (встроен в Kafka):
bash
/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties

Запустите Kafka-сервер:
bash
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

Готово! Kafka работает на стандартном порту 9092. Для проверки создайте тестовую тему:
bash
/opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

2.2 Установка Clickhouse

Добавьте репозиторий ClickHouse:
bash
sudo apt update
sudo apt install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://repo.clickhouse.com/deb/stable/ main/" | sudo tee /etc/apt/sources.list.d/clickhouse.list

Установите ClickHouse:
bash
sudo apt update
sudo apt install -y clickhouse-server clickhouse-client

Запустите сервер:
bash
sudo systemctl start clickhouse-server
sudo systemctl enable clickhouse-server

Готово! ClickHouse работает на порту 8123 (HTTP) и 9000 (TCP). Проверьте статус:
bash
sudo systemctl status clickhouse-server

Для подключения используйте:
bash
clickhouse-client
2. Создайте хранилища в Платформе
Подключение Kafka
Подключение Kafka

Обратите внимание, что настройка хранения исторических данных в СУБД Clickhouse настраивается для каждого рабочего (продуктового) домена платформы.

Для рабочего домена в приложении Настройки, меню Хранилища (storages) добавьте хранилище типа kafka. В качестве имени экземпляра укажите model_ch.

Подключение Clickhouse
Подключение Clickhouse

Для рабочего домена в приложении Настройки, меню Хранилища (storages) добавьте хранилище типа clickhouse. В качестве имени экземпляра также укажите model_ch.

В качестве параметров укажите валидную JSON структуру подключения для Kafka и Clickhouse соответственно. Подробное описание подключения к хранилищам по ссылке.

3. Подключите продуктовый слой (домен) к созданному хранилищу

Переустановите или обновите продуктовый слой рабочего домена.

С этого момента все исторические данные (классы) будут храниться в СУБД Clickhouse и соответствующие отчеты и дашборды будут строить статистику на основе данных из СУБД Clickhouse.