Администрирование и траблуштинг ClickHouse
Перезапуск ClickHouse
Чтобы перезапустить ClickHouse, используйте команду systemctl в зависимости от вашей операционной системы:
sudo systemctl restart clickhouse-server
Использование clickhouse-client
clickhouse-client - это REPL-оболочка для работы с ClickHouse. Она позволяет выполнять запросы к серверу ClickHouse, управлять базами данных, таблицами и другими объектами. clickhouse-client поддерживает интерактивный режим и режим скриптов.
Основные возможности clickhouse-client
Интерактивный режим
Команда сlickhouse-client может быть выполнена без указания параметров. Запуск команды без параметров запустит оболочку, в которой можно вводить и выполнять SQL-запросы в режиме реального времени.
Режим скриптов
clickhouse-client может принимать SQL-запросы из файлов или других потоков ввода и исполнять их. Это полезно для автоматизации задач или выполнения объемных SQL-запросов.
Пример с передачей запроса через параметр:
clickhouse-client --query="SELECT * FROM table_name"
Пример с передачей запроса через стандартный потока ввода:
clickhouse-client < script.sql
Подключение к удалённым серверам
Также возможно подключение к удалённым серверам ClickHouse, указав хост, порт, пользователя и пароль в следующем виде:
clickhouse-client --host=remote_host --port=9000 --user=username --password=secret_password
Форматы вывода
clickhouse-client поддерживает различные форматы вывода данных, такие как CSV, JSON и другие. Это позволяет гибко работать с выводом данных в зависимости от задачи.
Пример:
clickhouse-client --query="SELECT * FROM table_name" --format=CSV
Траблшутинг работы ClickHouse
Файлы логов
Логи ClickHouse могут быть полезны для диагностики проблем и анализа работы сервера. Файлы логов работы по умолчанию находятся в директории /var/log/clickhouse-server/.
Чтобы отслеживать последние логи выполните:
tail -f /var/log/clickhouse-server/clickhouse-server.log
Для просмотра логов об ошибках выполните:
tail -f /var/log/clickhouse-server/clickhouse-server.err.log
Анализ системных таблиц
Системные таблицы ClickHouse содержат множество полезной информации для мониторинга и диагностики работы сервера. Основные таблицы перечислены ниже:
- 
system.metrics- показывает текущие значения внутренних метрик сервера, такие как количество активных соединений и запросов.SELECT * FROM system.metrics;
- 
system.parts- содержит информацию о частях таблиц MergeTree, включая их размер и состояние.SELECT
 table,
 partition,
 name,
 active,
 bytes_on_disk
 FROM system.parts
 WHERE active = 1;
- 
system.replicas- содержит информацию о состоянии репликации.SELECT
 database,
 table,
 is_leader,
 is_readonly,
 total_replicas,
 active_replicas
 FROM system.replicas;
- 
system.query_log- содержит информацию о всех выполненных запросах, включая их длительность и возможные ошибки.SELECT
 query,
 event_time,
 query_duration_ms,
 exception
 FROM system.query_log
 ORDER BY event_time DESC
 LIMIT 10;
Частые ошибки
Ошибка при проверке подключения к ClickHouse
В файле /app/opensearch/jdk/lib/security/default.policy убедитесь в наличие разрешения getClassLoader.
Файл должен включать следующую строку:
permission java.lang.RuntimePermission "getClassLoader";
Добавьте её в конец файла в следующем виде в случае отсутствия данного разрешения:
grant {
    permission java.lang.RuntimePermission "getClassLoader";
};
После внесения изменений выполните перезапуск службы opensearch на узлах кластера где была обновлена настройка.