clickhousectl es la CLI de ClickHouse para entornos locales y en la nube.
Con clickhousectl puedes:
- Instalar y gestionar versiones locales de ClickHouse
- Iniciar y gestionar servidores locales de ClickHouse
- Ejecutar y gestionar instancias locales de Postgres
- Ejecutar consultas en servidores de ClickHouse
- Configurar ClickHouse Cloud y crear clústeres de ClickHouse gestionados en la nube
- Crear y gestionar servicios de Postgres de ClickHouse Cloud
- Gestionar recursos de ClickHouse Cloud
- Crear y gestionar ClickPipes para la ingestión de datos (S3, Kafka, Kinesis, Postgres, MySQL, MongoDB, BigQuery)
- Instalar las Skills oficiales para agentes de ClickHouse en agentes de codificación compatibles
- Llevar tu desarrollo local de ClickHouse a la nube
clickhousectl ayuda a personas y agentes de IA a desarrollar con ClickHouse.
Instalación
Instalación rápida
~/.local/bin/clickhousectl. También se crea automáticamente un alias chctl para mayor comodidad.
Requisitos
- macOS (aarch64, x86_64) o Linux (aarch64, x86_64)
- Los comandos de Cloud requieren una clave de API de ClickHouse Cloud
Local
Instalación y gestión de versiones de ClickHouse
clickhousectl descarga los binarios de ClickHouse desde builds.clickhouse.com y recurre a packages.clickhouse.com (Linux) o a GitHub releases (macOS) cuando no hay una compilación disponible en ese sitio.
local use también crea un enlace simbólico en ~/.local/bin/clickhouse que apunta al binario de la versión seleccionada, para que el comando clickhouse a secas (p. ej., clickhouse local, clickhouse client) esté en PATH. Pasa --no-global para omitirlo. Si ya existe un archivo normal en esa ruta, se deja intacto y se muestra una advertencia. local remove de la versión predeterminada activa también elimina el enlace simbólico.
Almacenamiento de los binarios de ClickHouse
~/.clickhouse/:
Inicialización de un proyecto
init inicializa tu directorio de trabajo actual con una estructura de carpetas estándar para los archivos de tu proyecto de ClickHouse y Postgres. Es opcional; si lo prefieres, puedes usar tu propia estructura de carpetas.
Crea la siguiente estructura:
Ejecutar consultas
Crear y gestionar servidores de ClickHouse
.clickhouse/servers/<name>/data/.
--name, el primer servidor se llama “default”. Si “default” ya está en ejecución, se genera un nombre aleatorio (por ejemplo, “bold-crane”). Use --name para asignar identidades estables que pueda iniciar y detener repetidamente.
Puertos: Los puertos predeterminados son HTTP 8123 y TCP 9000. Si ya están en uso, se asignan automáticamente puertos libres y se muestran en la salida. Use --http-port y --tcp-port para establecer puertos específicos.
Gestión global de servidores: Use --global con list, stop y stop-all para operar en todos los proyectos del sistema. server list --global muestra todos los servidores de ClickHouse en ejecución, con una columna Project que indica a qué directorio pertenece cada uno.
Archivos de configuración personalizados para servidores locales
~/.clickhouse/configs/ y aplícalo por nombre al iniciar un servidor:
config.d), por lo que solo necesita contener los ajustes que quieras cambiar y no es necesario reproducir una configuración completa. Los archivos pueden ser .xml, .yaml o .yml, y puedes hacer referencia a ellos por nombre, con o sin la extensión.
Directorio local de datos del proyecto
.clickhouse/, dentro del directorio del proyecto:
clickhousectl local server remove <name> para eliminar permanentemente los datos de un servidor.
Ejecutar Postgres local
clickhousectl puede ejecutar y administrar instancias locales de Postgres. Postgres local se ejecuta sobre Docker, por lo que Docker debe estar instalado y en funcionamiento. Cada instancia se identifica por su nombre y su versión principal, por lo que varias versiones de Postgres pueden ejecutarse en paralelo con directorios de datos independientes.
Autenticación
clickhousectl cloud auth signup abre la página de registro en su navegador.
API key/secreto de la API (recomendado)
.clickhouse/credentials.json (en el directorio local del proyecto).
También puedes usar variables de entorno, ya sea exportadas en tu sesión:
.env en tu directorio de trabajo actual:
Inicio de sesión con OAuth
.clickhouse/tokens.json (local del proyecto).
Actualmente, el acceso con OAuth es de solo lectura y otorga acceso a todas las organizaciones a las que perteneces. Para obtener acceso de escritura o limitar el alcance de la CLI a una sola organización, crea una API key con alcance definido.
Estado de la autenticación y cierre de sesión
.clickhouse/credentials.json > variables de entorno exportadas > archivo .env > tokens de OAuth.
Depuración del origen de credenciales utilizado
--debug a cualquier comando cloud para que imprima en stderr el origen de credenciales resuelto (y la URL de la API) antes de ejecutar el comando.
Cloud
Organizaciones
Servicios
Opciones de creación del servicio
| Opción | Descripción |
|---|---|
--name | Nombre del servicio (obligatorio) |
--provider | Proveedor de nube: aws, gcp, azure (predeterminado: aws) |
--region | Región (predeterminada: us-east-1) |
--min-replica-memory-gb | Memoria mínima por réplica en GB (8-356, múltiplo de 4) |
--max-replica-memory-gb | Memoria máxima por réplica en GB (8-356, múltiplo de 4) |
--num-replicas | Número de réplicas (1-20) |
--idle-scaling | Permitir escalar a cero (predeterminado: true) |
--idle-timeout-minutes | Tiempo mínimo de inactividad en minutos (>= 5) |
--ip-allow | CIDR de IP permitido (repetible, predeterminado: 0.0.0.0/0) |
--backup-id | ID de la copia de seguridad desde la que restaurar |
--release-channel | Canal de lanzamiento: slow, default, fast |
--data-warehouse-id | ID del almacén de datos (para réplicas de lectura) |
--readonly | Hacer que el servicio sea de solo lectura |
--encryption-key | Clave de cifrado de disco del cliente |
--encryption-role | ARN del rol para el cifrado de disco |
--enable-tde | Habilitar Cifrado transparente de datos |
--compliance-type | Cumplimiento normativo: hipaa, pci |
--profile | Perfil de instancia (enterprise) |
--tag | Adjuntar una etiqueta de servicio GA (key o key=value) |
--enable-endpoint / --disable-endpoint | Activar o desactivar endpoints de servicio GA (actualmente mysql) |
--private-preview-terms-checked | Aceptar los términos de la vista previa privada cuando sea necesario |
--enable-core-dumps | Habilitar o deshabilitar la recopilación de volcados de memoria del servicio |
Modos de autenticación de Query API
cloud service query es la forma canónica de ejecutar SQL en un servicio de Cloud a través de HTTP, sin necesitar el binario clickhouse ni la contraseña del servicio. Funciona con ambos modos de credenciales:
- Autenticación con API key (SQL de lectura y escritura): la primera vez que
cloud service queryse ejecuta en un servicio sin una clave almacenada, aprovisiona un endpoint de Query API para ese servicio y crea una API key dedicada asociada a él. La clave (keyId,keySecretyendpointId) se almacena en.clickhouse/credentials.jsonenservice_query_keys.<service-id>. La clave queda limitada a un único servicio, por lo que puede leer y escribir (SELECT, INSERT, DDL) en ese servicio, pero no puede acceder a ningún otro servicio del org. Pase--no-auto-enablepara que falle en lugar de aprovisionarlo. - OAuth (
cloud auth login): la consulta se ejecuta con su propia identidad, igual que en la consola web de SQL. Sus permisos de SQL en el servicio son de solo lectura cuando usa OAuth. No se aprovisiona ni se almacena ninguna Query API key.--no-auto-enableno tiene efecto en este modo.
cloud service start. Establezca CLICKHOUSE_CLOUD_QUERY_HOST para sobrescribir el host derivado de Query API.
Gestión de endpoints de consulta
Administración de Private Endpoint
Configuración de copia de seguridad
Servicios de Postgres
clickhousectl también puede crear y gestionar servicios de ClickHouse Cloud Postgres, siguiendo el mismo esquema que los comandos del servicio de ClickHouse anteriores.
Opciones de creación del servicio Postgres
| Opción | Descripción |
|---|---|
--name | Nombre del servicio (obligatorio) |
--region | Región, p. ej. us-east-1 (obligatorio) |
--size | Tamaño de la instancia, p. ej. m7i.2xlarge (obligatorio) |
--provider | Proveedor de nube (predeterminado: aws) |
--pg-version | Versión principal: 18, 17 |
--ha-type | Alta disponibilidad: none, async, sync |
--tag | Etiqueta de recurso key o key=value (repetible) |
--pg-config-file | Ruta a un archivo JSON con un objeto PgConfig |
--pg-bouncer-config-file | Ruta a un archivo JSON con un objeto PgBouncerConfig |
Copias de seguridad
ClickPipes
Creación de ClickPipes
clickpipe create:
clickhousectl cloud clickpipe create <source> --help para ver la lista completa de opciones para cada tipo de fuente.
Miembros
Invitaciones
Claves
Actividad
Salida en JSON
--json para imprimir respuestas en formato JSON.
clickhousectl detecta automáticamente contextos de agentes de codificación (Claude Code, Cursor, Codex, Gemini CLI, Goose, Devin y cualquier herramienta que establezca la variable de entorno estándar AGENT) y emite JSON en stdout automáticamente sin configurar --json.
Códigos de salida
gh:
| Código | Significado |
|---|---|
0 | Éxito |
1 | Error (cualquier caso no clasificado a continuación) |
2 | Cancelado (el usuario lo abortó) |
4 | Se requiere autenticación (sin credenciales, 401/403, escrituras solo con OAuth) |
Skills
Opciones no interactivas
| Opción | Descripción |
|---|---|
--agent <name> | Instala Skills para un agente específico (se puede repetir) |
--global | Usa el alcance global; si se omite, se usa el alcance del proyecto |
--all | Instala Skills para todos los agentes compatibles |
--detected-only | Instala Skills para los agentes compatibles detectados en el sistema |
Autoactualización
clickhousectl puede actualizarse a la versión más reciente: