Встроенная база данных ClickHouse

В Staffcop Enterprise есть возможность включения базы данных Clickhouse.

Включение Clickhouse позволяет создать гибридный режим работы Staffcop Enterprise: часто используемые данные хранятся в Clickhouse, остальные данные — в PostgreSQL.

На практике этот гибридный режим позволяет повысить производительность даже на базах данных с сотнями миллионов записей. На пилотном проекте скорость работы с реальными данными увеличилась до 50 раз.

Дополнительно для работы Clickhouse требуется:

  • место на жестком диске — порядка 50% от размера базы данных Postgresql;

  • оперативная память, потребление которой зависит от объёма базы данных и от нагрузки.

Включение базы данных Clickhouse

По умолчанию Staffcop Enterprise работает с базой данных PostgreSQL. Для включения Clickhouse и работы в гибридном режиме, выполните команду:

sudo staffcop clickhouse-install

Примечание

При установке, система запросит пароль для базы данных ClickHouse. Оставьте его пустым.

Чтобы установить пароль или настроить ClickHouse для работы на другом сервере, обратитесь в службу технической поддержки.

Скрипт установки скачает Clickhouse и установит в систему. После установки будет запущен процесс миграции необходимых данных из Postgresql в Clickhouse.

После установки Clickhouse и запуска Staffcop Enterprise в гибридном режиме, данные в конструкторе и часть событий будут появляться с задержкой в 5-10 минут от реального времени. При этом общее быстродействие системы повысится. Особенно это будет заметно, если сервер Staffcop расположен на HDD-дисках.

Процесс миграции на большой базе данных может занять некоторое время. Чтобы проследить за прогрессом миграции, откройте раздел АдминистрированиеСтатус сервера. На этой странице будет отображаться название политики и количество событий, которые ещё не были обработаны этой политикой.

Обработка политик по умолчанию запускается раз в 5 минут. Страница автоматически обновляется, как только количество событий, которые должны быть мигрированы в Clickhouse, приблизится к нулю. Для работы с новой базой данных можно использовать веб-интерфейс.

После завершения миграции появится дополнительное меню переключения режима работы базы данных в веб-интерфейсе:

../_images/clickhouse_1_1.png

Также в МенюО программе можно заметить, что текущая база данных сменилась с Postgresql на Clickhouse.

../_images/clickhouse_2.png

Примечание

На больших базах данных (от 10 ГБ) процесс миграции в гибридный режим работы может занимать до нескольких часов объективного времени. В ходе миграции в веб-интерфейсе администратора могут не отображаться события и отчёты.

Настройка SSL для Clickhouse

Чтобы настроить безопасное подключение к базе данных Clickhouse:

  1. Настройте Clickhouse для использования OpenSSL.

  2. На сервере Staffcop откройте конфигурационный файл /etc/staffcop/config/.

  3. В блоке CLICKHOUSE = укажите IP-адрес сервера и порт для подключения в следующем виде:

    CLICKHOUSE = {
         'URL': 'clickhouses://ip-address:port/staffcop'
    }
    

Если не указать номер порта для подключения, то будет использован порт 9440 — порт для безопасного подключения по умолчанию.

Примечание

Обратите внимание, что в блоке CLICKHOUSE = для безопасного подключения необходимо указывать схему clickhouses. Схема clickhouse используется для незащищённого подключения.

Имя пользователя и пароль
Если при установке Clickhouse, был задан пароль доступа или изменено имя пользователя, то блок CLICKHOUSE = в конфигурационном файле должен иметь вид
CLICKHOUSE = {
'URL': 'clickhouses://user:password@ip-address:port/staffcop'
}

Отключение базы Clickhouse

Чтобы отключить гибридный режим работы базы данных Staffcop Enterprise, остановите службу Cliskhouse:

sudo service clickhouse-server stop && sudo service staffcop restart

Чтобы полностью удалить базу данных из системы, удалите пакет Clickhouse:

sudo service clickhouse-server stop && sudo apt-get -y purge clickhouse-server && sudo service staffcop restart

При отстутствии связи с базой данных Clickhouse, Staffcop Enterprise будет работать с PostgreSQL.

Выделение большего объема памяти для Clickhouse

Для выделения дополнительного объёма памяти базе данных откройте файл /etc/clickhouse-server/users.xml и в строке

<max_memory_usage>10000000000</max_memory_usage>

укажите в байтах размер памяти, который необходимо выделить для Clickhouse.

После увеличения размера базы данных перезагрузите сервисы staffcop:

sudo service clickhouse-server restart
sudo staffcop restart

Оценка занимаемых ресурсов базой данных Clickhouse

Чтобы определить, сколько места занято базой данхых, выполните запрос:

sudo du -sm /var/lib/clickhouse/

Выданная цифра будет означать размер базы данных Clickhouse в мегабайтах.

Чтобы определить, сколько новая база данных занимает в оперативной памяти, выполните команду:

sudo ps -aux | grep -i clickhouse-server | awk '{print $5}'

Расширенные команды для управления Clickhouse в Staffcop