Перейти к основному содержимому
Версия: 4.2

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