Шардирование¶
Начиная с версии IBatyr Monitor 4.7, шардирование поддерживается из коробки.
Принцип работы¶
Шардирование — принцип проектирования базы данных, при котором логически независимые строки таблицы базы данных хранятся раздельно, заранее сгруппированные в секции. Эти секции, в свою очередь, размещаются на разных, физически и логически независимых серверах базы данных. При этом один физический узел кластера может содержать несколько серверов баз данных.
В IBatyr шардирование работает следующим образом:
Создаётся несколько таблиц, разбитых по месяцам с 1 числа, таблица на следующий месяц и дефолтная таблица (agent_event_default).
Таблица текущего месяца заполняется по мере поступления событий.

Note
agent_event_default — таблица в которую попадают события, не попавшие ни в одну из созданных таблиц. Например, если на агенте выставлено неверное время (месяц, год).
Если agent_event_default увеличилась до большого размера, значит где-то возникла проблема или что-то работает некорректно.
Полезные команды¶
Список команд, с помощью которых можно произвести диагностику или посмотреть информацию.
Действие |
Команда |
Комментарий |
Проверить, включено ли |
sudo ibatyr shard install
|
Если шардирование включено, на экране |
Вывести список шардов |
sudo ibatyr shard list
|
Выводит список всех таблиц, разбитых |
Посмотреть, какие данные |
echo "select count(*), min(local_
time), max(local_time) from table
group by date_trunc('month',
local_time)" | ibatyr sql
|
|
Создать “холодное” хранилище |
sudo ibatyr shard cold
/var/lib/staffcop/upload/coldbase
|
Создаёт “холодное” хранилище на другом |
“Заморозить” таблицу |
ibatyr shard freeze <table_name>
|
Команда заморозит таблицу table_name Attention Перед началом “заморозки” остановите nginx: sudo service nginx stop
После завершения запустите nginx: sudo service nginx start
|
Удалить данные за месяц |
ibatyr shard drop <table_name>
|
Удаляет таблицу table и привязанные к ней файлы. |
Удалить данные за |
ibatyr shard cleanup n
|
Удаляет все таблицы, кроме n: 0 — удаляет все таблицы; |
Удалить партицию в ClickHouse |
ibatyr clickhouse drop <partition>
|
Удаляет партицию <partition> в ClickHouse. |
Удаление шарда через веб-интерфейс¶
Note
При удалении шарда, будут удалены все файлы, привязанные к указанной таблице.
Удалить шарды в PostgreSQL и ClickHouse можно из веб-интерфейса сервера IBatyr. Для этого в разделе Панель управления - Базы данных выберите интересующую вас базу и в выпадающем меню Выполнить действие выберите Удалить данные.
