Администрирование и траблуштинг 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
на узлах кластера где была обновлена настройка.