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/:
Инициализация проекта
init создает в текущем рабочем каталоге стандартную структуру папок для файлов вашего проекта ClickHouse и Postgres. Это необязательно: при желании вы можете использовать собственную структуру папок.
Будет создана следующая структура:
Выполнение запросов
Создание и управление серверами 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/ и укажите его имя при запуске сервера:
config.d), поэтому он должен содержать только те настройки, которые вы хотите изменить, и нет необходимости дублировать весь config. Файлы могут иметь расширение .xml, .yaml или .yml, и на них можно ссылаться по имени как с расширением, так и без него.
Локальный каталог данных проекта
.clickhouse/ в каталоге проекта:
clickhousectl local server remove <name>, чтобы навсегда удалить данные сервера.
Запуск локального Postgres
clickhousectl может запускать локальные экземпляры Postgres и управлять ими. Локальный Postgres работает на базе Docker, поэтому Docker должен быть установлен и запущен. Каждый экземпляр определяется по имени и основной версии, поэтому несколько версий Postgres могут работать параллельно, используя отдельные каталоги данных.
Аутентификация
clickhousectl cloud auth signup откроет страницу регистрации в вашем браузере.
API-ключ/секрет (рекомендуется)
.clickhouse/credentials.json (в каталоге проекта).
Вы также можете использовать переменные окружения, экспортированные в текущем сеансе:
.env в текущем рабочем каталоге:
Вход через OAuth
.clickhouse/tokens.json (локально для проекта).
В настоящее время доступ через OAuth доступен только для чтения и предоставляет доступ ко всем организациям, в которые вы входите. Чтобы получить доступ на запись или ограничить CLI одной организацией, вместо этого создайте API-ключ с ограниченной областью действия.
Статус авторизации и выход
.clickhouse/credentials.json > экспортированные переменные окружения > файл .env > токены OAuth.
Отладка: какой источник учётных данных использовался
--debug любой команде cloud, чтобы перед её выполнением вывести в stderr, какой источник учётных данных был определён (а также URL API).
Cloud
Организации
Сервисы
Параметры создания сервиса
Режимы аутентификации 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не действует.
cloud service start. Задайте CLICKHOUSE_CLOUD_QUERY_HOST, чтобы переопределить вычисленный хост Query API.
Управление эндпоинтами запросов
Управление частной конечной точкой
Настройка резервного копирования
Сервисы Postgres
clickhousectl также позволяет создавать сервисы ClickHouse Cloud Postgres и управлять ими по аналогии с командами для сервиса ClickHouse, приведёнными выше.
Параметры создания сервиса Postgres
Резервные копии
ClickPipes
Создание 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.
Коды выхода
gh:
Навыки
Флаги неинтерактивного режима
Самообновление
clickhousectl может самостоятельно обновиться до последнего релиза: