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

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

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

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

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

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

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

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

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

sudo staffcop clickhouse-install

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

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

Заметить работу новой базы данных можно по строкам из лога в командной строке Linux:

sudo tail -f /var/log/staffcop/process.log | grep -i pump

Если вы увидите строки с выводом:

2018-06-09 17:15:55,397 [INFO] process: Clickhouse pump done
2018-06-09 17:17:03,800 [INFO] process: Clickhouse pump done

Это будет означать, что 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 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