Это старая версия документа!
Содержание
Настройка ClickHouse для Glaber
Добавление пользователя
Пользователь и пароль: glaber
nano /etc/clickhouse-server/users.d/glaber.xml
<clickhouse>
<users>
<glaber>
<password>glaber</password>
<networks>
<ip>127.0.0.1</ip>
</networks>
<profile>default</profile>
</glaber>
</users>
</clickhouse>
Создаём дополнительные файлы настройки с отключением лишних функций
Задаём ограничение времени хранения логов
nano /etc/clickhouse-server/config.d/query_log.xml
<yandex>
<query_log replace="1">
<database>system</database>
<table>query_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
<engine>
ENGINE = MergeTree
PARTITION BY event_date
ORDER BY (event_time)
TTL event_date + interval 90 day
SETTINGS ttl_only_drop_parts=1
</engine>
</query_log>
</yandex>
Отключаем thread log
nano /etc/clickhouse-server/config.d/disable_query_thread_log.xml
<yandex>
<query_thread_log remove="1"/>
</yandex>
Отключаем встроенные метрики Clickhouse
Если хотим мониторить его параметры внешним мониторингом
nano /etc/clickhouse-server/config.d/disable_metric_logs.xml
<yandex> <metric_log remove="1" /> <asynchronous_metric_log remove="1" /> </yandex>
Отключаем part_log
nano /etc/clickhouse-server/config.d/part_log.xml
<yandex>
<part_log remove="1" />
</yandex>
Включаем log queries
В новых версиях Clickhouse включен по-умолчанию
nano /etc/clickhouse-server/users.d/log_queries.xml
<yandex>
<profiles>
<default>
<log_queries>1</log_queries>
</default>
</profiles>
</yandex>
Запись данных на диск сразу в отсортированном виде
nano /etc/clickhouse-server/users.d/enable_on_disk_operations.xml
<yandex>
<profiles>
<default>
<max_bytes_before_external_group_by>2000000000</max_bytes_before_external_group_by>
<max_bytes_before_external_sort>2000000000</max_bytes_before_external_sort>
</default>
</profiles>
</yandex>
Бекап
Стоит учитывать, что объемы данных могут быть очень большими, поэтому зачастую нужно реализовывать миграцию данных по частям (по партициям, по таблицам)
Настройка
Настройте, путь куда сервер будет бекапить данные. Для этого нужно создать файл /etc/clickhouse-server/config.d/backup_disk.xml с содержимым, указывающим место в файловой системе, куда будут попадать бекапы (в данном случае /backups/)
nano /etc/clickhouse-server/config.d/backup_disk.xml
<clickhouse>
<storage_configuration>
<disks>
<backups>
<type>local</type>
<path>/backups/</path>
</backups>
</disks>
</storage_configuration>
<backups>
<allowed_disk>backups</allowed_disk>
<allowed_path>/backups/</allowed_path>
</backups>
</clickhouse>
Создание бекапа
Подключитесь к Clickhouse. В самом простом случае, подключиться к серверу можно командой clickhouse client выполнив её локально на той же машине на которой запущен clickhouse. Далее выполните бекап командой:
BACKUP DATABASE glaber TO Disk('backups', 'glaber.zip')
Восстановление из бекапа
Настройте путь для работы с бекапами аналогично на сервере, на котором будут восстанавливаться данные, скопируйте в этот путь файл с бекапом и восстановите базу предварительно удалив существующую в случае её наличия:
DROP DATABASE glaber
RESTORE DATABASE glaber FROM Disk('backups', 'glaber.zip')
Прочее
Перезапуск ClickHouse сервера
systemctl restart clickhouse-server
Проверить статус ClickHouse сервера
systemctl status clickhouse-server
Отключить много логов
Не рекомендуется!
nano /etc/clickhouse-server/config.d/z_log_disable.xml
<clickhouse>
<asynchronous_metric_log remove="1"/>
<asynchronous_insert_log remove="1"/>
<backup_log remove="1"/>
<error_log remove="1"/>
<metric_log remove="1"/>
<query_metric_log remove="1"/>
<query_thread_log remove="1" />
<query_log remove="1" />
<query_views_log remove="1" />
<part_log remove="1"/>
<session_log remove="1"/>
<text_log remove="1" />
<trace_log remove="1"/>
<crash_log remove="1"/>
<opentelemetry_span_log remove="1"/>
<zookeeper_log remove="1"/>
<processors_profile_log remove="1"/>
<latency_log remove="1"/>
<background_schedule_pool_log remove="1"/>
<aggregated_zookeeper_log remove="1"/>
<zookeeper_connection_log remove="1"/>
</clickhouse>
