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

Начиная с версии 4.3, в Staffcop Enterprise появилась встроенная возможность включения новой базы данных Clickhouse.

Эта свободнораспространяемая база данных разработанная компанией Yandex, позволила создать гибридный режим работы Staffcop Enterprise. Это значит, что самая частоиспользуемая часть данных хранится в быстрой базе данных Clickhouse, а большая часть остальных данных остаётся в надежной Postgresql.

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

Накладными расходами для работы базы данных Clickhouse являются:

  • дополнительное место на жестком диске, порядка 5-10% от размера базы данных Postgres

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

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

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

sudo staffcop clickhouse-install

Внимание

При установке система запросит пароль для базы данных ClickHouse, который используется для дополнительной безопаности. Мы реконедуем оставлять поле пустым (не вводить пароль), если данная опция нужна, то укажите пароль.

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

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

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

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

../_images/clickhouse_1.png

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

../_images/clickhouse_2.png

Примечание

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

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

Возможны ситуации, когда выделенного объема памяти для Clickhouse может быть недостаточно. В этом случае можно увеличить допустимый объем памяти. Для этого в файле /etc/clickhouse-server/users.xml

<yandex>
<!-- Profiles of settings. -->
<profiles>
<!-- Default settings. -->
<default>
<!-- Maximum memory usage for processing single query, in bytes. -->
<max_memory_usage>10000000000</max_memory_usage>

В строке

<max_memory_usage>10000000000</max_memory_usage>

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

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

sudo service clickhouse-server restart
sudo staffcop restart

Отключение базы 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-common && sudo service staffcop restart

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

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

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

sudo du -sm /var/lib/clickhouse/

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

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

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

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