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

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

Материал из Платформа Эра. Документации
Нет описания правки
 
(не показаны 4 промежуточные версии этого же участника)
Строка 1: Строка 1:
==== Краткое описание архитектуры подключения Платформы Эра к Kafka и СУБД Clickhouse  ====
==== Краткое описание архитектуры Kafka и СУБД Clickhouse  ====
Связка Kafka и ClickHouse широко используется для хранения и обработки больших объёмов статистики, особенно в системах, где данные поступают непрерывно и в реальном времени. Kafka в этом тандеме выполняет роль промежуточного буфера: она собирает события из платформы Эра и надёжно сохраняет их в очередях — топиках. Kafka обеспечивает масштабируемость, высокую отказоустойчивость и гарантированную доставку данных, даже если аналитическая система временно недоступна.
Связка Kafka и ClickHouse широко используется для хранения и обработки больших объёмов статистики, особенно в системах, где данные поступают непрерывно и в реальном времени. Kafka в этом тандеме выполняет роль промежуточного буфера: она собирает события из платформы Эра и надёжно сохраняет их в очередях — топиках. Kafka обеспечивает масштабируемость, высокую отказоустойчивость и гарантированную доставку данных, даже если аналитическая система временно недоступна.


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


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


==== Показания для перехода на Kafka и Clickhouse ====
📌 Официальный сайт: 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*);
* Использование более 10 млн строк в архивных таблицах (классы Archive*);
Строка 16: Строка 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. Создайте хранилища в Платформе =====
[[Файл:Подключение Kafka.png|альт=Подключение Kafka|мини|Подключение Kafka]]
[[Файл:Подключение Kafka.png|альт=Подключение Kafka|мини|Подключение Kafka]]
Обратите внимание, что настройка хранения исторических данных в СУБД Clickhouse настраивается для каждого рабочего (продуктового) домена платформы.
Для рабочего домена в приложении Настройки, меню Хранилища (storages) добавьте хранилище типа ''kafka''. В качестве имени экземпляра укажите ''model_ch''.  
Для рабочего домена в приложении Настройки, меню Хранилища (storages) добавьте хранилище типа ''kafka''. В качестве имени экземпляра укажите ''model_ch''.  
[[Файл:Подключение Clickhouse.png|альт=Подключение Clickhouse|мини|Подключение Clickhouse]]
[[Файл:Подключение Clickhouse.png|альт=Подключение Clickhouse|мини|Подключение Clickhouse]]

Текущая версия от 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.