Saltar al contenido principal
ClickHouse proporciona un cliente nativo de línea de comandos para ejecutar consultas SQL directamente contra un servidor de ClickHouse. Admite tanto el modo interactivo (para ejecutar consultas en tiempo real) como el modo por lotes (para scripts y automatización). Los resultados de las consultas pueden mostrarse en la terminal o exportarse a un archivo, con compatibilidad con todos los formatos de salida de ClickHouse, como Pretty, CSV, JSON y más. El cliente ofrece información en tiempo real sobre la ejecución de las consultas mediante una barra de progreso, el número de filas leídas, los bytes procesados y el tiempo de ejecución de la consulta. Admite tanto opciones de línea de comandos como archivos de configuración.

Instalar

Para descargar ClickHouse, ejecute:
Si también quieres instalarlo, ejecuta:
Consulte Install ClickHouse para ver más opciones de instalación. Las distintas versiones del cliente y del servidor son compatibles entre sí, pero es posible que algunas funciones no estén disponibles en los clientes más antiguos. Recomendamos usar la misma versión para el cliente y el servidor.

Ejecutar

Si solo descargaste ClickHouse pero no lo instalaste, usa ./clickhouse client en lugar de clickhouse-client.
Para conectarte a un servidor de ClickHouse, ejecuta:
Especifique los detalles de conexión adicionales que sean necesarios: Para ver la lista completa de opciones de la línea de comandos, consulte Command Line Options.

Conectarse a ClickHouse Cloud

Los detalles de tu servicio de ClickHouse Cloud están disponibles en la consola de ClickHouse Cloud. Selecciona el servicio al que quieres conectarte y haz clic en Connect:

Elige Native y se mostrarán los detalles junto con un comando de ejemplo de clickhouse-client:

Guardar conexiones en un archivo de configuración

Puede guardar los datos de conexión de uno o más servidores de ClickHouse en un archivo de configuración. El formato es el siguiente:
Consulta la sección sobre archivos de configuración para obtener más información.
Para centrarse en la sintaxis de la consulta, en el resto de los ejemplos se omiten los detalles de conexión (--host, --port, etc.). Recuerda añadirlos cuando uses los comandos.

Modo interactivo

Uso del modo interactivo

Para ejecutar ClickHouse en modo interactivo, solo tiene que ejecutar:
Esto abre el bucle de lectura-evaluación-impresión (REPL), donde puedes empezar a escribir consultas SQL de forma interactiva. Una vez conectado, verás un indicador donde podrás introducir consultas:
En el modo interactivo, el output format predeterminado es PrettyCompact. Puede cambiar el format en la cláusula FORMAT de la consulta o especificando la opción de línea de comandos --format. Para usar el Vertical format, puede usar --vertical o especificar \G al final de la consulta. En este format, cada valor se imprime en una línea independiente, lo que resulta práctico para tablas anchas. En el modo interactivo, de forma predeterminada, todo lo que introduzca se ejecuta al pulsar Enter. No es necesario un punto y coma al final de la consulta. Puede iniciar el cliente con el parámetro -m, --multiline. Para introducir una consulta de varias líneas, escriba una barra invertida \ antes del salto de línea. Después de pulsar Enter, se le pedirá que introduzca la siguiente línea de la consulta. Para ejecutar la consulta, termínela con un punto y coma y pulse Enter. Cliente de ClickHouse se basa en replxx (similar a readline), por lo que usa atajos de teclado habituales y mantiene un historial. El historial se escribe en ~/.clickhouse-client-history de forma predeterminada. Para salir del cliente, pulse Ctrl+D o introduzca una de las siguientes opciones en lugar de una consulta:
  • exit o exit;
  • quit o quit;
  • q, Q o :q
  • logout o logout;

Información sobre el procesamiento de consultas

Al procesar una consulta, el cliente muestra:
  1. El progreso, que se actualiza como máximo 10 veces por segundo de forma predeterminada. En las consultas rápidas, es posible que no dé tiempo a mostrarlo.
  2. La consulta formateada después del análisis sintáctico, para depuración.
  3. El resultado en el formato especificado.
  4. El número de líneas del resultado, el tiempo transcurrido y la velocidad media de procesamiento de la consulta. Todas las cantidades de datos se refieren a datos sin comprimir.
Puede cancelar una consulta larga pulsando Ctrl+C. Sin embargo, aun así tendrá que esperar un poco a que el servidor aborte la solicitud. No es posible cancelar una consulta en ciertas etapas. Si no espera y pulsa Ctrl+C por segunda vez, el cliente se cerrará. Cliente de ClickHouse permite pasar datos externos (tablas temporales externas) al realizar consultas. Para obtener más información, consulte la sección Datos externos para el procesamiento de consultas.

Alias

Puedes usar los siguientes alias en el REPL:
  • \l - SHOW DATABASES
  • \d - SHOW TABLES
  • \c <DATABASE> - USE DATABASE
  • . - repite la última consulta

Atajos de teclado

  • Alt (Option) + Shift + e - abre el editor con la consulta actual. Puedes especificar qué editor usar mediante la variable de entorno EDITOR. De forma predeterminada, se usa vim.
  • Alt (Option) + # - comentar la línea.
  • Ctrl + r - búsqueda difusa en el historial.
La lista completa de todos los atajos de teclado disponibles está en replxx.
Para configurar correctamente el funcionamiento de la tecla meta (Option) en MacOS:iTerm2: Ve a Preferences -> Profile -> Keys -> Left Option key y haz clic en Esc+

Modo por lotes

Uso del modo por lotes

En lugar de usar Cliente de ClickHouse de forma interactiva, puede ejecutarlo en modo por lotes. En el modo por lotes, ClickHouse ejecuta una sola consulta y finaliza de inmediato; no hay prompt interactivo ni bucle. Puede especificar una sola consulta así:
También puede usar la opción de la línea de comandos --query:
Puede pasar una consulta por stdin:
Suponiendo que existe la tabla messages, también puede insertar datos desde la línea de comandos:
Cuando se especifica --query, cualquier entrada se añade a la solicitud después de un salto de línea.

Insertar un archivo CSV en un servicio remoto de ClickHouse

En este ejemplo, se inserta el archivo CSV de muestra cell_towers.csv en la tabla existente cell_towers de la base de datos default:

Ejemplos de inserción de datos desde la línea de comandos

Hay varias formas de insertar datos desde la línea de comandos. El siguiente ejemplo inserta dos filas de datos CSV en una tabla de ClickHouse en modo por lotes:
En el ejemplo siguiente, cat <<_EOF inicia un heredoc que leerá todo hasta volver a encontrar _EOF y luego lo imprimirá:
En el ejemplo siguiente, el contenido de file.csv se envía a stdout con cat y se redirige por tubería a clickhouse-client como entrada:
En modo por lotes, el formato de datos predeterminado es TabSeparated. Puede definir el formato en la cláusula FORMAT de la consulta, como se muestra en el ejemplo anterior.

Consultas con parámetros

Puede especificar parámetros en una consulta y pasarle valores mediante opciones de la línea de comandos. Esto evita tener que componer la consulta con valores dinámicos específicos del lado del cliente. Por ejemplo:
También es posible establecer parámetros desde una sesión interactiva:

Sintaxis de la consulta

En la consulta, coloque entre llaves los valores que desee sustituir mediante parámetros de línea de comandos con el siguiente formato:

Ejemplos

Generación de SQL con IA

Cliente de ClickHouse incluye asistencia de IA integrada para generar consultas SQL a partir de descripciones en lenguaje natural. Esta función ayuda a los usuarios a escribir consultas complejas sin necesidad de tener conocimientos avanzados de SQL. La asistencia de IA funciona de forma predeterminada si tienes configurada la variable de entorno OPENAI_API_KEY o ANTHROPIC_API_KEY. Para una configuración más avanzada, consulta la sección Configuración.

Uso

Para usar generación de SQL con IA, antepone ?? a tu consulta en lenguaje natural:
La IA hará lo siguiente:
  1. Explorará automáticamente el esquema de tu base de datos
  2. Generará el SQL adecuado en función de las tablas y columnas descubiertas
  3. Ejecutará de inmediato la consulta generada

Ejemplo

Configuración

La generación de SQL con IA requiere configurar un proveedor de IA en el archivo de configuración de Cliente de ClickHouse. Puede utilizar OpenAI, Anthropic o cualquier servicio de API compatible con OpenAI.

fallback basado en variables de entorno

Si no se especifica ninguna configuración de IA en el archivo de configuración, ClickHouse Client intentará usar automáticamente variables de entorno:
  1. Primero, comprueba la variable de entorno OPENAI_API_KEY
  2. Si no la encuentra, comprueba la variable de entorno ANTHROPIC_API_KEY
  3. Si no encuentra ninguna de las dos, las funciones de IA se desactivarán
Esto permite una configuración rápida sin necesidad de archivos de configuración:

Archivo de configuración

Para tener un mayor control sobre la configuración de la IA, configúrala en el archivo de configuración de tu ClickHouse Client, ubicado en:
  • $XDG_CONFIG_HOME/clickhouse/config.xml (o ~/.config/clickhouse/config.xml si XDG_CONFIG_HOME no está definido) (formato XML)
  • $XDG_CONFIG_HOME/clickhouse/config.yaml (o ~/.config/clickhouse/config.yaml si XDG_CONFIG_HOME no está definido) (formato YAML)
  • ~/.clickhouse-client/config.xml (formato XML, ubicación heredada)
  • ~/.clickhouse-client/config.yaml (formato YAML, ubicación heredada)
  • O especifica una ubicación personalizada con --config-file

Uso de API compatibles con OpenAI (p. ej., OpenRouter):
Ejemplos mínimos de configuración:

Parámetros

  • api_key - Tu clave de API para el servicio de IA. Puede omitirse si se define mediante una variable de entorno:
    • OpenAI: OPENAI_API_KEY
    • Anthropic: ANTHROPIC_API_KEY
    • Nota: la clave de API del archivo de configuración tiene prioridad sobre la variable de entorno
  • provider - El proveedor de IA: openai o anthropic
    • Si se omite, se selecciona automáticamente según las variables de entorno disponibles
  • model - El modelo que se va a usar (predeterminado: específico del proveedor)
    • OpenAI: gpt-4o, gpt-4, gpt-3.5-turbo, etc.
    • Anthropic: claude-3-5-sonnet-20241022, claude-3-opus-20240229, etc.
    • OpenRouter: usa su nomenclatura de modelos, como anthropic/claude-3.5-sonnet
  • base_url - Endpoint de API personalizado para servicios compatibles con OpenAI (opcional)
  • timeout_seconds - Tiempo de espera de la solicitud, en segundos (predeterminado: 30)
  • enable_schema_access - Permite que la IA explore los esquemas de la base de datos (predeterminado: true)
  • max_steps - Número máximo de pasos de invocación de herramientas para explorar esquemas (predeterminado: 10)
  • temperature - Controla la aleatoriedad: 0.0 = determinista, 1.0 = creativo (predeterminado: 0.0)
  • max_tokens - Longitud máxima de la respuesta en tokens (predeterminado: 1000)
  • system_prompt - Instrucciones personalizadas para la IA (opcional)

Cómo funciona

El generador de SQL con IA utiliza un proceso de varios pasos:
  1. Descubrimiento del esquema
La IA utiliza herramientas integradas para explorar su base de datos
  • Enumera las bases de datos disponibles
  • Detecta tablas dentro de las bases de datos relevantes
  • Examina la estructura de las tablas mediante sentencias CREATE TABLE
  1. Generación de consultas
A partir del esquema descubierto, la IA genera SQL que:
  • Refleja su intención expresada en lenguaje natural
  • Utiliza los nombres correctos de tablas y columnas
  • Aplica las operaciones JOIN y las agregaciones adecuadas
  1. Ejecución
El SQL generado se ejecuta automáticamente y se muestran los resultados

Limitaciones

  • Requiere una conexión a internet activa
  • El uso de la API está sujeto a límites de uso y costos del proveedor de IA
  • Las consultas complejas pueden requerir varios ajustes
  • La IA tiene acceso de solo lectura a la información del esquema, no a los datos reales

Seguridad

  • Las claves de API nunca se envían a los servidores de ClickHouse
  • La IA solo ve información del esquema (nombres de tablas/columnas y tipos), no datos reales
  • Todas las consultas generadas respetan los permisos actuales de tu base de datos

Cadena de conexión

Uso

El ClickHouse Client también admite conectarse a un servidor de ClickHouse mediante una cadena de conexión similar a las de MongoDB, PostgreSQL y MySQL. Tiene la siguiente sintaxis:

Notas

Si el nombre de usuario, la contraseña o la base de datos se especifican en la cadena de conexión, no pueden especificarse mediante --user, --password o --database (y viceversa). La parte del host puede ser un nombre de host o una dirección IPv4 o IPv6. Las direcciones IPv6 deben ir entre []:
Las cadenas de conexión pueden contener varios hosts. ClickHouse Client intentará conectarse a estos hosts en el orden indicado (de izquierda a derecha). Una vez establecida la conexión, no se intentará conectar a los hosts restantes. La cadena de conexión debe especificarse como el primer argumento de clickHouse-client. La cadena de conexión puede combinarse con cualquier número de otras opciones de línea de comandos, excepto --host y --port. Se permiten las siguientes claves para query_parameters: Codificación porcentual Los caracteres no ASCII de EE. UU., los espacios y los caracteres especiales de los siguientes parámetros deben codificarse con porcentaje:
  • user
  • password
  • hosts
  • database
  • query parameters

Ejemplos

Conéctese a localhost por el puerto 9000 y ejecute la consulta SELECT 1.
Conéctese a localhost como el usuario john, con la contraseña secret, el host 127.0.0.1 y el puerto 9000
Conéctese a localhost como el usuario default, con la dirección IPV6 [::1] y el puerto 9000.
Conéctese a localhost por el puerto 9000 en modo multilínea.
Conéctese a localhost usando el puerto 9000 con el usuario default.
Conéctese a localhost por el puerto 9000 y utilice my_database como base de datos predeterminada.
Conéctese a localhost en el puerto 9000, use de forma predeterminada la base de datos my_database especificada en la cadena de conexión y establezca una conexión segura mediante el parámetro abreviado s.
Conéctese al host predeterminado con el puerto, el usuario y la base de datos predeterminados.
Conéctese al host predeterminado usando el puerto predeterminado, con el usuario my_user y sin contraseña.
Conéctese a localhost usando el correo electrónico como nombre de usuario. El símbolo @ se codifica como %40.
Conéctese a uno de los dos hosts: 192.168.1.15, 192.168.1.25.

Formato del ID de la consulta

En modo interactivo, ClickHouse Client muestra el ID de la consulta para cada consulta. De forma predeterminada, el ID tiene este formato:
Se puede especificar un formato personalizado en un archivo de configuración dentro de una etiqueta query_id_formats. El marcador {query_id} de la cadena de formato se sustituye por el ID de la consulta. Se permiten varias cadenas de formato dentro de la etiqueta. Esta funcionalidad puede utilizarse para generar URL que faciliten el perfilado de consultas. Ejemplo
Con la configuración anterior, el ID de una consulta se muestra con el siguiente formato:

Archivos de configuración

ClickHouse Client utiliza el primer archivo existente de la siguiente lista:
  • Un archivo definido con el parámetro -c [ -C, --config, --config-file ].
  • ./clickhouse-client.[xml|yaml|yml]
  • $XDG_CONFIG_HOME/clickhouse/config.[xml|yaml|yml] (o ~/.config/clickhouse/config.[xml|yaml|yml] si XDG_CONFIG_HOME no está definido)
  • ~/.clickhouse-client/config.[xml|yaml|yml]
  • /etc/clickhouse-client/config.[xml|yaml|yml]
Consulta el archivo de configuración de ejemplo en el repositorio de ClickHouse: clickhouse-client.xml

Opciones de variables de entorno

El nombre de usuario, la contraseña y el host se pueden establecer mediante las variables de entorno CLICKHOUSE_USER, CLICKHOUSE_PASSWORD y CLICKHOUSE_HOST. Los argumentos de línea de comandos --user, --password o --host, o una cadena de conexión (si se especifica), tienen prioridad sobre las variables de entorno.

Opciones de la línea de comandos

Todas las opciones de la línea de comandos pueden especificarse directamente en la línea de comandos o definirse como valores predeterminados en el archivo de configuración.

Opciones generales

Opciones de conexión

En lugar de las opciones --host, --port, --user y --password, el cliente también admite cadenas de conexión.

Opciones de consulta

Configuración de consultas

La configuración de las consultas puede especificarse como opciones de línea de comandos en el cliente, por ejemplo:
Consulta Configuración para ver la lista de ajustes.

Opciones de formato

Detalles de ejecución

Última modificación el 3 de julio de 2026