Встроенная база данных 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, приблизится к нулю. Для работы с новой базой данных можно использовать веб-интерфейс.
После завершения миграции появится дополнительное меню переключения режима работы базы данных в веб-интерфейсе:
Также в Меню → О программе можно заметить, что текущая база данных сменилась с Postgresql на Clickhouse.
Примечание
На больших базах данных (от 10 ГБ) процесс миграции в гибридный режим работы может занимать до нескольких часов объективного времени. В ходе миграции в веб-интерфейсе администратора могут не отображаться события и отчёты.
Настройка SSL для Clickhouse¶
Чтобы настроить безопасное подключение к базе данных Clickhouse:
На сервере Staffcop откройте конфигурационный файл /etc/staffcop/config/.
В блоке 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}'