Перейти к основному содержанию
clickhousectl — это CLI для ClickHouse: локального и Cloud. С помощью clickhousectl вы можете:
  • Устанавливать локальные версии ClickHouse и управлять ими
  • Запускать локальные серверы ClickHouse и управлять ими
  • Запускать локальные экземпляры Postgres и управлять ими
  • Выполнять запросы к серверам ClickHouse
  • Настраивать ClickHouse Cloud и создавать кластеры ClickHouse под управлением Cloud
  • Создавать сервисы Postgres в ClickHouse Cloud и управлять ими
  • Управлять ресурсами ClickHouse Cloud
  • Создавать ClickPipes для ингестии данных (S3, Kafka, Kinesis, Postgres, MySQL, MongoDB, BigQuery) и управлять ими
  • Устанавливать официальные навыки агентов ClickHouse в поддерживаемые агенты для программирования
  • Переносить локальную разработку на ClickHouse в облако
clickhousectl помогает людям и AI-агентам разрабатывать решения на ClickHouse.

Установка

Быстрая установка

Скрипт установки загружает подходящую версию для вашей ОС и устанавливает её в ~/.local/bin/clickhousectl. Для удобства также автоматически создаётся алиас chctl.

Требования

  • macOS (aarch64, x86_64) или Linux (aarch64, x86_64)
  • Для выполнения команд Cloud требуется API-ключ ClickHouse Cloud

Локально

Установка и управление версиями ClickHouse

clickhousectl загружает бинарные файлы ClickHouse с builds.clickhouse.com, а если нужная сборка там недоступна — с packages.clickhouse.com (Linux) или из GitHub releases (macOS).
local use также создаёт символическую ссылку ~/.local/bin/clickhouse, указывающую на бинарный файл выбранной версии, чтобы обычная команда clickhouse (например, clickhouse local, clickhouse client) была доступна в PATH. Чтобы пропустить это, передайте --no-global. Если по этому пути уже существует обычный файл, он будет оставлен без изменений, а вы получите предупреждение. local remove для активной версии по умолчанию также удаляет символическую ссылку.

Хранение бинарных файлов ClickHouse

Бинарные файлы ClickHouse хранятся в глобальном репозитории, поэтому их можно использовать в нескольких проектах без повторного хранения. Бинарные файлы хранятся в ~/.clickhouse/:

Инициализация проекта

init создает в текущем рабочем каталоге стандартную структуру папок для файлов вашего проекта ClickHouse и Postgres. Это необязательно: при желании вы можете использовать собственную структуру папок. Будет создана следующая структура:

Выполнение запросов

Создание и управление серверами ClickHouse

Запускайте серверы ClickHouse и управляйте ими. Для каждого сервера создаётся собственный изолированный каталог данных: .clickhouse/servers/<name>/data/.
Имена серверов: Без --name первый сервер получает имя “default”. Если “default” уже запущен, автоматически генерируется случайное имя (например, “bold-crane”). Используйте --name, чтобы задать постоянные идентификаторы, с которыми серверы можно многократно запускать и останавливать. Порты: По умолчанию используются порты HTTP 8123 и TCP 9000. Если они уже заняты, свободные порты назначаются автоматически и отображаются в выводе. Используйте --http-port и --tcp-port, чтобы явно задать порты. Глобальное управление серверами: Используйте --global с list, stop и stop-all, чтобы выполнять операции во всех проектах в масштабе всей системы. server list --global показывает все запущенные серверы ClickHouse со столбцом Project, который указывает, к какому каталогу относится каждый сервер.

Пользовательские файлы конфигурации для локальных серверов

Локальные серверы запускаются с подходящими настройками по умолчанию, но иногда требуется изменить тот или иной параметр. Поместите файл конфигурации в ~/.clickhouse/configs/ и укажите его имя при запуске сервера:
Указанный файл накладывается поверх встроенной конфигурации ClickHouse по умолчанию (через config.d), поэтому он должен содержать только те настройки, которые вы хотите изменить, и нет необходимости дублировать весь config. Файлы могут иметь расширение .xml, .yaml или .yml, и на них можно ссылаться по имени как с расширением, так и без него.

Локальный каталог данных проекта

Все данные сервера хранятся в .clickhouse/ в каталоге проекта:
У каждого именованного сервера есть собственный каталог данных, поэтому серверы полностью изолированы друг от друга. Данные сохраняются между перезапусками. Остановите и снова запустите сервер по имени, чтобы продолжить работу с того места, на котором остановились. Используйте clickhousectl local server remove <name>, чтобы навсегда удалить данные сервера.

Запуск локального Postgres

Помимо ClickHouse, clickhousectl может запускать локальные экземпляры Postgres и управлять ими. Локальный Postgres работает на базе Docker, поэтому Docker должен быть установлен и запущен. Каждый экземпляр определяется по имени и основной версии, поэтому несколько версий Postgres могут работать параллельно, используя отдельные каталоги данных.

Аутентификация

Войдите в ClickHouse Cloud с помощью ключей API (рекомендуется) или OAuth (через браузер). Если у вас еще нет аккаунта ClickHouse Cloud, clickhousectl cloud auth signup откроет страницу регистрации в вашем браузере.

API-ключ/секрет (рекомендуется)

Ключи API — рекомендуемый способ аутентификации, особенно если CLI использует ИИ-агент. Вы можете создать ключи API с ограниченной областью действия, которые дают только выбранные вами разрешения (только для чтения или чтение/запись), при этом каждый ключ привязан к одной организации. Это безопасный способ предоставить CLI доступ с минимально необходимыми привилегиями.
Учетные данные сохраняются в .clickhouse/credentials.json (в каталоге проекта). Вы также можете использовать переменные окружения, экспортированные в текущем сеансе:
Или поместите их в файл .env в текущем рабочем каталоге:
Или передайте учетные данные напрямую через флаги любой команды:

Вход через OAuth

Это откроет браузер для аутентификации через OAuth Device Flow. Токены сохраняются в .clickhouse/tokens.json (локально для проекта).
В настоящее время доступ через OAuth доступен только для чтения и предоставляет доступ ко всем организациям, в которые вы входите. Чтобы получить доступ на запись или ограничить CLI одной организацией, вместо этого создайте API-ключ с ограниченной областью действия.

Статус авторизации и выход

Порядок приоритета учетных данных: флаги CLI > .clickhouse/credentials.json > экспортированные переменные окружения > файл .env > токены OAuth.

Отладка: какой источник учётных данных использовался

Передайте --debug любой команде cloud, чтобы перед её выполнением вывести в stderr, какой источник учётных данных был определён (а также URL API).

Cloud

Управляйте сервисами ClickHouse Cloud через API.

Организации

Сервисы

Параметры создания сервиса

Режимы аутентификации Query API

cloud service query — основной способ выполнять SQL-запросы к облачному сервису по HTTP без использования бинарного файла clickhouse и без пароля сервиса. Он поддерживает оба режима учетных данных:
  • Аутентификация по ключу API (чтение и запись SQL): при первом запуске cloud service query для сервиса, у которого нет сохраненного ключа, команда подготавливает для этого сервиса конечную точку Query API и создает отдельный ключ API, привязанный к ней. Ключ (keyId, keySecret и endpointId) сохраняется в .clickhouse/credentials.json в разделе service_query_keys.<service-id>. Область действия ключа ограничена одним сервисом, поэтому он может читать и записывать данные (SELECT, INSERT, DDL) в этом сервисе, но не может обращаться к другим сервисам в организации. Передайте --no-auto-enable, чтобы команда завершалась ошибкой вместо автоматической подготовки.
  • OAuth (cloud auth login): запрос выполняется от имени вашей учетной записи, как и в веб-консоли SQL. При использовании OAuth у вас есть только только для чтения SQL-разрешения для сервиса. Ключ Query API не создается и не сохраняется. В этом режиме --no-auto-enable не действует.
При выполнении запроса к сервису в состоянии idled он автоматически выводится из этого состояния в обоих режимах аутентификации (первый запрос может занять до минуты). Сервис в состоянии stopped никогда не запускается автоматически: запрос завершается ошибкой с подсказкой выполнить cloud service start. Задайте CLICKHOUSE_CLOUD_QUERY_HOST, чтобы переопределить вычисленный хост Query API.

Управление эндпоинтами запросов

Управление частной конечной точкой

Настройка резервного копирования

Сервисы Postgres

clickhousectl также позволяет создавать сервисы ClickHouse Cloud Postgres и управлять ими по аналогии с командами для сервиса ClickHouse, приведёнными выше.

Параметры создания сервиса Postgres

Резервные копии

ClickPipes

Управляйте ClickPipes для ингестии данных из внешних источников в ClickHouse Cloud.

Создание ClickPipes

Для каждого типа источника предусмотрена своя подкоманда в clickpipe create:
Используйте clickhousectl cloud clickpipe create <source> --help, чтобы увидеть полный список параметров для каждого типа источника.

Участники

Приглашения

Ключи

Активность

Вывод в формате JSON

Используйте флаг --json, чтобы выводить ответы в формате JSON.
clickhousectl автоматически определяет контексты ИИ-ассистентов для программирования (Claude Code, Cursor, Codex, Gemini CLI, Goose, Devin и любые инструменты, которые задают стандартную переменную окружения AGENT) и автоматически выводит JSON в stdout без указания --json.

Коды выхода

Коды выхода соответствуют соглашениям CLI gh:

Навыки

Установите официальный набор навыков ClickHouse Agent Skills из ClickHouse/agent-skills.

Флаги неинтерактивного режима

Самообновление

clickhousectl может самостоятельно обновиться до последнего релиза:
CLI также проверяет наличие обновлений в фоновом режиме (не чаще одного раза в 24 часа) и показывает уведомление, когда доступна новая версия.
Последнее изменение 2 июля 2026 г.