Перейти к основному содержанию
ClickHouse предоставляет нативный клиент командной строки для выполнения SQL-запросов напрямую к серверу ClickHouse. Он поддерживает как интерактивный режим (для выполнения запросов в реальном времени), так и пакетный режим (для сценариев и автоматизации). Результаты запроса можно выводить в терминал или экспортировать в файл; поддерживаются все выходные форматы ClickHouse, такие как Pretty, CSV, JSON и другие. Клиент в реальном времени показывает сведения о выполнении запроса: индикатор прогресса, количество прочитанных строк, объём обработанных данных в байтах и время выполнения запроса. Он поддерживает как параметры командной строки, так и файлы конфигурации.

Установка

Чтобы загрузить ClickHouse, выполните:
Чтобы установить и его, выполните:
См. Установка ClickHouse, чтобы ознакомиться с другими вариантами установки. Разные версии клиента и сервера совместимы между собой, но некоторые возможности могут быть недоступны в старых версиях клиента. Мы рекомендуем использовать одну и ту же версию клиента и сервера.

Запуск

Если вы только скачали ClickHouse, но не установили его, используйте ./clickhouse client вместо clickhouse-client.
Чтобы подключиться к серверу ClickHouse, выполните:
При необходимости укажите дополнительные сведения о подключении: Полный список параметров командной строки см. в разделе Параметры командной строки.

Подключение к ClickHouse Cloud

Сведения о вашем сервисе ClickHouse Cloud доступны в консоли ClickHouse Cloud. Выберите сервис, к которому хотите подключиться, и нажмите Connect:

Выберите Native — отобразятся сведения о подключении и пример команды clickhouse-client:

Хранение подключений в файле конфигурации

Вы можете хранить сведения о подключении к одному или нескольким серверам ClickHouse в файле конфигурации. Формат выглядит так:
См. раздел о файлах конфигурации для получения дополнительной информации.
Чтобы сосредоточиться на синтаксисе запроса, в остальных примерах опущены сведения о подключении (--host, --port и т. д.). Не забудьте добавить их при использовании команд.

Интерактивный режим

Использование интерактивного режима

Чтобы запустить ClickHouse в интерактивном режиме, просто выполните:
Откроется цикл Read-Eval-Print Loop (REPL), в котором можно интерактивно вводить SQL-запросы. После подключения появится промпт, в который можно вводить запросы:
В интерактивном режиме формат вывода по умолчанию — PrettyCompact. Вы можете изменить формат в предложении FORMAT запроса или с помощью параметра командной строки --format. Чтобы использовать формат Vertical, можно указать --vertical или добавить \G в конце запроса. В этом формате каждое значение выводится на отдельной строке, что удобно для широких таблиц. В интерактивном режиме по умолчанию всё введённое выполняется при нажатии Enter. Точка с запятой в конце запроса не обязательна. Вы можете запустить клиент с параметром -m, --multiline. Чтобы ввести многострочный запрос, добавьте обратную косую черту \ перед переводом строки. После нажатия Enter вам будет предложено ввести следующую строку запроса. Чтобы выполнить запрос, завершите его точкой с запятой и нажмите Enter. Клиент ClickHouse основан на replxx (аналог readline), поэтому поддерживает привычные сочетания клавиш и сохраняет историю. По умолчанию история записывается в ~/.clickhouse-client-history. Чтобы выйти из клиента, нажмите Ctrl+D или вместо запроса введите одно из следующего:
  • exit или exit;
  • quit или quit;
  • q, Q или :q
  • logout или logout;

Информация об обработке запроса

При обработке запроса клиент показывает:
  1. Прогресс, который по умолчанию обновляется не чаще 10 раз в секунду. Для быстрых запросов прогресс может просто не успеть отобразиться.
  2. Отформатированный запрос после разбора — для отладки.
  3. Результат в указанном формате.
  4. Количество строк в результате, затраченное время и среднюю скорость обработки запроса. Все объёмы данных относятся к несжатым данным.
Вы можете отменить длительный запрос, нажав Ctrl+C. Однако вам всё равно придётся немного подождать, пока сервер прервёт его выполнение. На некоторых этапах отменить запрос невозможно. Если не ждать и нажать Ctrl+C второй раз, клиент завершит работу. клиент ClickHouse позволяет передавать внешние данные (внешние временные таблицы) для выполнения запросов. Подробнее см. в разделе Внешние данные для обработки запроса.

Псевдонимы

В REPL можно использовать следующие псевдонимы:
  • \l - SHOW DATABASES
  • \d - SHOW TABLES
  • \c <DATABASE> - USE DATABASE
  • . - повторить последний запрос

Сочетания клавиш

  • Alt (Option) + Shift + e — открыть редактор с текущим запросом. Редактор можно задать с помощью переменной окружения EDITOR. По умолчанию используется vim.
  • Alt (Option) + # — закомментировать строку.
  • Ctrl + r — поиск по истории с нечётким совпадением.
Полный список доступных сочетаний клавиш приведён в replxx.
Чтобы настроить корректную работу клавиши Meta (Option) в macOS:iTerm2: перейдите в Preferences -> Profile -> Keys -> Left Option key и нажмите Esc+

Пакетный режим

Работа в пакетном режиме

Вместо интерактивной работы с клиентом ClickHouse его можно запускать в пакетном режиме. В пакетном режиме ClickHouse выполняет один запрос и сразу завершает работу — без интерактивного промпта и цикла. Один запрос можно указать так:
Можно также использовать параметр командной строки --query:
Можно передать запрос через stdin:
Если таблица messages уже существует, вы также можете вставить данные из командной строки:
Когда указан --query, все входные данные добавляются к запросу после символа перевода строки.

Вставка CSV-файла в удалённый сервис ClickHouse

В этом примере CSV-файл с тестовым набором данных cell_towers.csv вставляется в существующую таблицу cell_towers в базе данных default:

Примеры вставки данных из командной строки

Есть несколько способов вставки данных из командной строки. В примере ниже две строки данных в формате CSV вставляются в таблицу ClickHouse в пакетном режиме:
В примере ниже cat <<_EOF начинает конструкцию heredoc, которая считывает всё до следующего появления _EOF, а затем выводит это:
В примере ниже содержимое file.csv выводится в stdout с помощью cat, а затем через конвейер передаётся на вход clickhouse-client:
В пакетном режиме формат данных по умолчанию — TabSeparated. Вы можете указать формат в предложении FORMAT запроса, как показано в примере выше.

Запросы с параметрами

Вы можете указать параметры в запросе и передать их значения через параметры командной строки. Это позволяет не подставлять конкретные динамические значения в запрос на стороне клиента. Например:
Параметры также можно задавать в интерактивном сеансе:

Синтаксис запроса

В запросе заключите в фигурные скобки значения, которые нужно подставить с помощью параметров командной строки, в следующем формате:

Примеры

Генерация SQL с помощью ИИ

Клиент ClickHouse включает встроенную ИИ-поддержку для генерации SQL-запросов по описаниям на естественном языке. Эта возможность помогает пользователям составлять сложные запросы без глубокого знания SQL. ИИ-поддержка работает сразу после настройки переменной окружения OPENAI_API_KEY или ANTHROPIC_API_KEY. Более подробную информацию о расширенной настройке см. в разделе Configuration.

Использование

Чтобы использовать генерацию SQL с помощью ИИ, добавьте префикс ?? перед запросом на естественном языке:
ИИ будет:
  1. Автоматически изучать схему вашей базы данных
  2. Генерировать подходящий SQL на основе обнаруженных таблиц и столбцов
  3. Сразу выполнять сгенерированный запрос

Пример

Конфигурация

Для генерации SQL с помощью ИИ необходимо настроить провайдера ИИ в файле конфигурации клиента ClickHouse. Вы можете использовать OpenAI, Anthropic или любой API-сервис с поддержкой совместимости с OpenAI.

Резервный вариант через переменные окружения

Если в файле конфигурации не указана конфигурация AI, клиент ClickHouse автоматически попытается использовать переменные окружения:
  1. Сначала проверяется переменная окружения OPENAI_API_KEY
  2. Если она не найдена, проверяется переменная окружения ANTHROPIC_API_KEY
  3. Если не найдена ни одна из них, возможности AI будут отключены
Это позволяет быстро выполнить настройку без использования файлов конфигурации:

Файл конфигурации

Чтобы точнее управлять настройками ИИ, задайте их в файле конфигурации клиента ClickHouse, расположенном по одному из следующих путей:
  • $XDG_CONFIG_HOME/clickhouse/config.xml (или ~/.config/clickhouse/config.xml, если XDG_CONFIG_HOME не задан) (формат XML)
  • $XDG_CONFIG_HOME/clickhouse/config.yaml (или ~/.config/clickhouse/config.yaml, если XDG_CONFIG_HOME не задан) (формат YAML)
  • ~/.clickhouse-client/config.xml (формат XML, устаревший путь)
  • ~/.clickhouse-client/config.yaml (формат YAML, устаревший путь)
  • Или укажите произвольный путь с помощью --config-file

Использование API, совместимых с OpenAI (например, OpenRouter):
Примеры минимальной конфигурации:

Параметры

  • api_key - Ваш API-ключ для сервиса ИИ. Можно не указывать, если он задан через переменную окружения:
    • OpenAI: OPENAI_API_KEY
    • Anthropic: ANTHROPIC_API_KEY
    • Примечание: API-ключ в файле конфигурации имеет приоритет над переменной окружения
  • provider - Провайдер ИИ: openai или anthropic
    • Если не указан, автоматически выбирается по доступным переменным окружения
  • model - Используемая модель (по умолчанию: зависит от провайдера)
    • OpenAI: gpt-4o, gpt-4, gpt-3.5-turbo и т. д.
    • Anthropic: claude-3-5-sonnet-20241022, claude-3-opus-20240229 и т. д.
    • OpenRouter: используйте их схему именования моделей, например anthropic/claude-3.5-sonnet
  • base_url - Пользовательская конечная точка API для сервисов, совместимых с OpenAI (необязательно)
  • timeout_seconds - Тайм-аут запроса в секундах (по умолчанию: 30)
  • enable_schema_access - Разрешить ИИ просматривать схемы базы данных (по умолчанию: true)
  • max_steps - Максимальное количество шагов вызова инструментов для исследования схемы (по умолчанию: 10)
  • temperature - Управляет степенью случайности: 0.0 = детерминированно, 1.0 = креативно (по умолчанию: 0.0)
  • max_tokens - Максимальная длина ответа в токенах (по умолчанию: 1000)
  • system_prompt - Пользовательские инструкции для ИИ (необязательно)

Как это работает

Генератор AI SQL использует многоэтапный процесс:
  1. Определение схемы
AI использует встроенные инструменты, чтобы изучить вашу базу данных:
  • Перечисляет доступные базы данных
  • Находит таблицы в соответствующих базах данных
  • Анализирует структуру таблиц с помощью операторов CREATE TABLE
  1. Генерация запроса
На основе обнаруженной схемы AI генерирует SQL, который:
  • Соответствует вашему запросу на естественном языке
  • Использует правильные имена таблиц и столбцов
  • Применяет подходящие JOIN и агрегации
  1. Выполнение
Сгенерированный SQL автоматически выполняется, а результаты отображаются

Ограничения

  • Требуется активное подключение к интернету
  • На использование API распространяются ограничения по частоте запросов, а также взимается плата со стороны поставщика ИИ
  • Для сложных запросов может потребоваться несколько уточнений
  • ИИ имеет доступ только для чтения к информации о схеме, но не к фактическим данным

Безопасность

  • Ключи API никогда не отправляются на серверы ClickHouse
  • AI видит только информацию о схеме (имена таблиц/столбцов и типы), а не сами данные
  • Все сгенерированные запросы учитывают ваши текущие разрешения на доступ к базе данных

Строка подключения

Использование

Клиент ClickHouse также поддерживает подключение к серверу ClickHouse с помощью строки подключения, аналогичной строкам подключения в MongoDB, PostgreSQL и MySQL. Она имеет следующий синтаксис:

Примечания

Если имя пользователя, пароль или база данных указаны в строке подключения, их нельзя указывать через --user, --password или --database (и наоборот). Компонент host может быть как именем хоста, так и адресом IPv4 или IPv6. Адреса IPv6 должны быть заключены в []:
Строки подключения могут содержать несколько хостов. Клиент ClickHouse будет пытаться подключиться к этим хостам по порядку (слева направо). После установления соединения попытки подключения к оставшимся хостам не выполняются. Строка подключения должна быть указана в качестве первого аргумента clickHouse-client. Строку подключения можно сочетать с любым количеством других параметров командной строки, кроме --host и --port. Для query_parameters допустимы следующие ключи: Процентное кодирование Символы вне US-ASCII, пробелы и специальные символы в следующих параметрах должны быть закодированы с помощью процентного кодирования:
  • user
  • password
  • hosts
  • database
  • query parameters

Примеры

Подключитесь к localhost через порт 9000 и выполните запрос SELECT 1.
Подключитесь к localhost от имени пользователя john с паролем secret, указав хост 127.0.0.1 и порт 9000
Подключитесь к localhost от имени пользователя default, используя узел с адресом IPv6 [::1] и порт 9000.
Подключитесь к localhost через порт 9000 в многострочном режиме.
Подключитесь к localhost по порту 9000 под пользователем default.
Подключитесь к localhost через порт 9000; по умолчанию будет использоваться база данных my_database.
Подключитесь к localhost на порту 9000; по умолчанию будет использоваться база данных my_database, указанная в строке подключения, а для защищенного подключения используйте сокращенный параметр s.
Подключитесь к хосту по умолчанию, используя порт, пользователя и базу данных по умолчанию.
Подключитесь к хосту по умолчанию через порт по умолчанию под пользователем my_user, без пароля.
Подключитесь к localhost, используя адрес электронной почты в качестве имени пользователя. Символ @ заменяется на %40 при процентном кодировании.
Подключитесь к одному из двух узлов: 192.168.1.15, 192.168.1.25.

Формат Query id

В интерактивном режиме клиент ClickHouse отображает Query id для каждого запроса. По умолчанию идентификатор имеет такой формат:
Пользовательский формат можно указать в файле конфигурации в теге query_id_formats. Заполнитель {query_id} в строке формата заменяется идентификатором запроса. Внутри тега допускается несколько строк формата. Эту возможность можно использовать для генерации URL-адресов, облегчающих анализ данных профилирования запросов. Пример
При указанной выше конфигурации идентификатор запроса отображается в следующем формате:

Файлы конфигурации

Клиент ClickHouse использует первый найденный из следующих файлов:
  • Файл, указанный параметром -c [ -C, --config, --config-file ].
  • ./clickhouse-client.[xml|yaml|yml]
  • $XDG_CONFIG_HOME/clickhouse/config.[xml|yaml|yml] (или ~/.config/clickhouse/config.[xml|yaml|yml], если XDG_CONFIG_HOME не задан)
  • ~/.clickhouse-client/config.[xml|yaml|yml]
  • /etc/clickhouse-client/config.[xml|yaml|yml]
См. пример файла конфигурации в репозитории ClickHouse: clickhouse-client.xml

Параметры переменных окружения

Имя пользователя, пароль и хост можно задать с помощью переменных окружения CLICKHOUSE_USER, CLICKHOUSE_PASSWORD и CLICKHOUSE_HOST. Аргументы командной строки --user, --password или --host, а также строка подключения (если она указана), имеют приоритет над переменными окружения.

Параметры командной строки

Все параметры командной строки можно указать прямо в командной строке или задать значения по умолчанию в файле конфигурации.

Общие параметры

Параметры подключения

Вместо параметров --host, --port, --user и --password клиент также поддерживает строки подключения.

Параметры запроса

Настройки запроса

Настройки запроса можно задавать в клиенте через параметры командной строки, например:
Список настроек см. в разделе Settings.

Параметры форматирования

Подробности выполнения

Последнее изменение 25 июня 2026 г.