ClickHouse
ClickHouse — это колоночная аналитическая СУБД с открытым кодом, позволяющая выполнять аналитичес кие запросы в режиме реального времени на структурированных больших данных, разрабатываемая компанией Яндекс. Подробнее о ClickHouse.
KOMRAD использует ClickHouse для хранения событий в базе komrad_events
и быстрого доступа к ним. Благодаря использованию самых свежих и стабильных релизов, мы встраиваем всё новые инструменты для ускорения поиска и фильтрации по событиям.
Мы самостоятельно собираем пакеты ClickHouse, проверяем их и кладём в дистрибутив.
В состав дистрибутива входят следующие пакеты:
clickhouse-common-static
— устанавливает исполняемые файлы ClickHouse.
clickhouse-server
— создает символические ссылки для clickhouse-server
и устанавливает конфигурационные файлы.
clickhouse-client
— создает символические ссылки для clickhouse-client
и других клиентских инструментов и устанавливает конфигурационные файлы clickhouse-client
.
clickHouse keeper
— это альтернативный сервис координации, совместимый с ZooKeeper
.
Требования
Процессор
В случае установки из готовых deb-пакетов используйте процессоры с архитектурой x86_64 и поддержкой инструкций SSE 4.2. Для запуска ClickHouse на процессорах без поддержки SSE 4.2 или на процессорах с архитектурой AArch64 и PowerPC64LE необходимо собирать ClickHouse из исходников.
ClickHouse реализует параллельную обработку данных и использует все доступные аппаратные ресурсы. При выборе процессора учитывайте, что ClickHouse работает более эффективно в конфигурациях с большим количеством ядер, но с более низкой тактовой частотой, чем в конфигурациях с меньшим количеством ядер и более высокой тактовой частотой. Например, 16 ядер с 2600 MHz предпочтительнее, чем 8 ядер с 3600 MHz.
Рекомендуется использовать технологии Turbo Boost и hyper-threading. Их использование существенно улучшает производительность при типичной нагрузке.
RAM
Мы рекомендуем исп ользовать как минимум 4 ГБ оперативной памяти, чтобы иметь возможность выполнять нетривиальные запросы. Сервер ClickHouse может работать с гораздо меньшим объёмом RAM, память требуется для обработки запросов.
Необходимый объём RAM зависит от:
- сложности запросов
- объёма данных, обрабатываемых в запросах
Для расчета объёма RAM необходимо оценить размер промежуточных данных для операций GROUP BY, DISTINCT, JOIN а также других операций, которыми вы пользуетесь.
ClickHouse может использовать внешнюю память для промежуточных данных. Подробнее об этом можно прочесть на сайте разработчика.
Файл подкачки
Отключайте файл подкачки в продуктовых средах.
Подсистема хранения
Для установки ClickHouse необходимо 2ГБ свободного места на диске.
Объём дискового пространства, необходимый для хранения ваших данных, нужно рассчитывать отдельно. Расчёт должен включать:
- Приблизительную оценку объёма данных:
можно взять образец данных и получить из него средний размер строки. Затем умножить полученное значение на количество строк, которое Вы планируете хранить.
- Оценку коэффициента сжатия данных:
чтобы оценить коэффициент сжатия данных, загрузите некоторую выборку данных в ClickHouse и сравните действительный размер данных с размером сохранённой таблицы. Например, данные типа clickstream
обычно сжимаются в 6-10 раз.
Для оценки объёма хранилища примените коэффициент сжатия к размеру данных. Если вы планируете хранить данные в нескольких репликах, то необходимо полученный объём умножить на количество реплик.
Парамеры сети
По возможности, используйте сети 10G и более высокого класса.
Пропускная способность се ти критически важна для обработки распределенных запросов с большим количеством промежуточных данных. Также скорость сети влияет на задержки в процессах репликации.
Программное обеспечение
ClickHouse разработан для семейства операционных систем Linux. Рекомендуемый дистрибутив Linux — Ubuntu. В системе должен быть установлен пакет tzdata
.
ClickHouse может работать и в других семействах операционных систем.
Установка
Возможны различные варианты установки ClickHouse, он может размещаться на одном хосте в случае лицензии Base AiO, или может быть установлен на другом хосте в случае наличия лицензии Enterprise.
ClickHouse установится самостоятельно в случае автоматической установки KOMRAD
Как установить ClickHouse вручную, можно прочитать в разделе ручная установка на Astra Linux
Срок хранения событий
После автоматической или ручной установки события по умолчанию будут храниться в системе 30 дней.
Вы можете установить необходимый Вам параметр хранения событий в базе (TTL - Time to live). Это можно сделать через запрос к базе Clickhouse. Подключитесь к Clickhouse
ALTER TABLE komrad_events.events
MODIFY TTL FROM_UNIXTIME(key_time) + INTERVAL 365 DAY;