Instalar
Ejecutar
Si solo descargaste ClickHouse pero no lo instalaste, usa
./clickhouse client en lugar de clickhouse-client.| Option | Description |
|---|---|
--port <port> | El puerto en el que el servidor ClickHouse acepta conexiones. Los puertos predeterminados son 9440 (TLS) y 9000 (sin TLS). Tenga en cuenta que Cliente de ClickHouse usa el protocolo nativo y no HTTP(S). |
-s [ --secure ] | Indica si se debe usar TLS (normalmente se detecta automáticamente). |
-u [ --user ] <username> | El usuario de la base de datos con el que se conectará. De forma predeterminada, se conecta como el usuario default. |
--password <password> | La contraseña del usuario de la base de datos. También puede especificar la contraseña de una conexión en el archivo de configuración. Si no especifica la contraseña, el cliente la solicitará. |
-c [ --config ] <path-to-file> | La ubicación del archivo de configuración de Cliente de ClickHouse, si no se encuentra en una de las ubicaciones predeterminadas. Consulte Configuration Files. |
--connection <name> | El nombre de los detalles de conexión preconfigurados en el archivo de configuración. |
Conectarse a ClickHouse Cloud
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
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
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:
exitoexit;quitoquit;q,Qo:qlogoutologout;
Información sobre el procesamiento de consultas
- 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.
- La consulta formateada después del análisis sintáctico, para depuración.
- El resultado en el formato especificado.
- 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.
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
\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 entornoEDITOR. De forma predeterminada, se usavim.Alt (Option) + #- comentar la línea.Ctrl + r- búsqueda difusa en el historial.
Modo por lotes
Uso del modo por lotes
--query:
stdin:
messages, también puede insertar datos desde la línea de comandos:
--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
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
cat <<_EOF inicia un heredoc que leerá todo hasta volver a encontrar _EOF y luego lo imprimirá:
cat y se redirige por tubería a clickhouse-client como entrada:
TabSeparated.
Puede definir el formato en la cláusula FORMAT de la consulta, como se muestra en el ejemplo anterior.
Consultas con parámetros
Sintaxis de la consulta
| Parámetro | Descripción |
|---|---|
name | Identificador del marcador de posición. La opción correspondiente de la línea de comandos es --param_<name> = value. |
data type | Tipo de dato del parámetro. Por ejemplo, una estructura de datos como (integer, ('string', integer)) puede tener el tipo de dato Tuple(UInt8, Tuple(String, UInt8)) (también puede usar otros tipos integer). También es posible pasar como parámetros el nombre de la tabla, el nombre de la base de datos y los nombres de columna; en ese caso, deberá usar Identifier como tipo de dato. |
Ejemplos
Generación de SQL con IA
OPENAI_API_KEY o ANTHROPIC_API_KEY. Para una configuración más avanzada, consulta la sección Configuración.
Uso
?? a tu consulta en lenguaje natural:
- Explorará automáticamente el esquema de tu base de datos
- Generará el SQL adecuado en función de las tablas y columnas descubiertas
- Ejecutará de inmediato la consulta generada
Ejemplo
Configuración
fallback basado en variables de entorno
- Primero, comprueba la variable de entorno
OPENAI_API_KEY - Si no la encuentra, comprueba la variable de entorno
ANTHROPIC_API_KEY - Si no encuentra ninguna de las dos, las funciones de IA se desactivarán
Archivo de configuración
$XDG_CONFIG_HOME/clickhouse/config.xml(o~/.config/clickhouse/config.xmlsiXDG_CONFIG_HOMEno está definido) (formato XML)$XDG_CONFIG_HOME/clickhouse/config.yaml(o~/.config/clickhouse/config.yamlsiXDG_CONFIG_HOMEno 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
- XML
- YAML
Uso de API compatibles con OpenAI (p. ej., OpenRouter):
Parámetros
Parámetros obligatorios
Parámetros obligatorios
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
- OpenAI:
provider- El proveedor de IA:openaioanthropic- Si se omite, se selecciona automáticamente según las variables de entorno disponibles
Configuración del modelo
Configuración del modelo
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
- OpenAI:
Configuración de la conexión
Configuración de la conexión
base_url- Endpoint de API personalizado para servicios compatibles con OpenAI (opcional)timeout_seconds- Tiempo de espera de la solicitud, en segundos (predeterminado:30)
Exploración de esquemas
Exploración de esquemas
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)
Parámetros de generación
Parámetros de generación
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
- Descubrimiento del esquema
- 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
- Generación de consultas
- Refleja su intención expresada en lenguaje natural
- Utiliza los nombres correctos de tablas y columnas
- Aplica las operaciones JOIN y las agregaciones adecuadas
- Ejecución
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
| Componente (todos opcionales) | Descripción | Predeterminado |
|---|---|---|
user | Nombre de usuario de la base de datos. | default |
password | Contraseña del usuario de la base de datos. Si se especifica : y la contraseña está vacía, el cliente solicitará la contraseña del usuario. | - |
hosts_and_ports | Lista de hosts y, opcionalmente, puertos host[:port] [, host:[port]], .... | localhost:9000 |
database | Nombre de la base de datos. | default |
query_parameters | Lista de pares clave-valor param1=value1[,¶m2=value2], .... Para algunos parámetros, no se requiere ningún valor. Los nombres y valores distinguen entre mayúsculas y minúsculas. | - |
Notas
--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 []:
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:
| Clave | Descripción |
|---|---|
secure (o s) | Si se especifica, el cliente se conectará al servidor mediante una conexión segura (TLS). Consulte --secure en las opciones de línea de comandos. |
userpasswordhostsdatabasequery parameters
Ejemplos
localhost por el puerto 9000 y ejecute la consulta SELECT 1.
localhost como el usuario john, con la contraseña secret, el host 127.0.0.1 y el puerto 9000
localhost como el usuario default, con la dirección IPV6 [::1] y el puerto 9000.
localhost por el puerto 9000 en modo multilínea.
localhost usando el puerto 9000 con el usuario default.
localhost por el puerto 9000 y utilice my_database como base de datos predeterminada.
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.
my_user y sin contraseña.
localhost usando el correo electrónico como nombre de usuario. El símbolo @ se codifica como %40.
192.168.1.15, 192.168.1.25.
Formato del ID de la consulta
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
Archivos de configuración
- 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]siXDG_CONFIG_HOMEno está definido)~/.clickhouse-client/config.[xml|yaml|yml]/etc/clickhouse-client/config.[xml|yaml|yml]
clickhouse-client.xml
- XML
- YAML
Opciones de 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
Opciones generales
| Opción | Descripción | Predeterminado |
|---|---|---|
-c [ -C, --config, --config-file ] <path-to-file> | La ubicación del archivo de configuración del cliente, si no se encuentra en una de las ubicaciones predeterminadas. Consulte Archivos de configuración. | - |
--help | Muestra un resumen de uso y sale. Combínelo con --verbose para mostrar todas las opciones posibles, incluida la configuración de la consulta. | - |
--history_file <path-to-file> | Ruta al archivo que contiene el historial de comandos. | - |
--history_max_entries | Número máximo de entradas en el archivo de historial. | 1000000 (1 millón) |
--prompt <prompt> | Especifica un prompt personalizado. | El display_name del servidor |
--verbose | Aumenta el nivel de detalle de la salida. | - |
-V [ --version ] | Muestra la versión y sale. | - |
Opciones de conexión
| Opción | Descripción | Predeterminado |
|---|---|---|
--connection <name> | El nombre de los detalles de conexión preconfigurados del archivo de configuración. Consulta Credenciales de conexión. | - |
-d [ --database ] <database> | Selecciona la base de datos que se usará de forma predeterminada para esta conexión. | La base de datos actual de la configuración del servidor (default de forma predeterminada) |
-h [ --host ] <host> | El nombre de host del servidor de ClickHouse al que conectarse. Puede ser un nombre de host o una dirección IPv4 o IPv6. Se pueden pasar varios hosts mediante varios argumentos. | localhost |
--jwt <value> | Usa JSON Web Token (JWT) para la autenticación. La autorización JWT del servidor solo está disponible en ClickHouse Cloud. | - |
login | Invoca el flujo OAuth de concesión de dispositivo para autenticarse mediante un IdP. En los hosts de ClickHouse Cloud, las variables de OAuth se infieren automáticamente; en caso contrario, deben proporcionarse con --oauth-url, --oauth-client-id y --oauth-audience. | - |
--no-warnings | Desactiva la visualización de advertencias de system.warnings cuando el cliente se conecta al servidor. | - |
--no-server-client-version-message | Suprime el mensaje de incompatibilidad de versiones entre el servidor y el cliente cuando el cliente se conecta al servidor. | - |
--password <password> | La contraseña del usuario de la base de datos. También puedes especificar la contraseña de una conexión en el archivo de configuración. Si no especificas la contraseña, el cliente la solicitará. | - |
--port <port> | El puerto en el que el servidor acepta conexiones. Los puertos predeterminados son 9440 (TLS) y 9000 (sin TLS). Nota: el cliente usa el protocolo nativo, no HTTP(S). | 9440 si se especifica --secure; en caso contrario, 9000. Siempre usa 9440 de forma predeterminada si el nombre de host termina en .clickhouse.cloud. |
-s [ --secure ] | Indica si se debe usar TLS. Se habilita automáticamente al conectarse al puerto 9440 (el puerto seguro predeterminado) o a ClickHouse Cloud. Puede que necesites configurar tus certificados de CA en el archivo de configuración. Los ajustes de configuración disponibles son los mismos que para la configuración de TLS del lado del servidor. | Se habilita automáticamente al conectarse al puerto 9440 o a ClickHouse Cloud |
--ssh-key-file <path-to-file> | Archivo que contiene la clave privada SSH para autenticarse con el servidor. | - |
--ssh-key-passphrase <value> | Frase de contraseña de la clave privada SSH especificada en --ssh-key-file. | - |
--tls-sni-override <server name> | Si se usa TLS, el nombre del servidor (SNI) que se enviará en el handshake. | El host proporcionado mediante -h o --host. |
-u [ --user ] <username> | El usuario de la base de datos con el que conectarse. | default |
En lugar de las opciones
--host, --port, --user y --password, el cliente también admite cadenas de conexión.Opciones de consulta
| Opción | Descripción |
|---|---|
--param_<name>=<value> | Valor de sustitución para un parámetro de una consulta con parámetros. |
-q [ --query ] <query> | La consulta que se ejecutará en modo batch. Puede especificarse varias veces (--query "SELECT 1" --query "SELECT 2") o una sola vez con varias consultas separadas por punto y coma (--query "SELECT 1; SELECT 2;"). En este último caso, las consultas INSERT con formatos distintos de VALUES deben separarse con líneas en blanco. También puede especificarse una sola consulta sin parámetro: clickhouse-client "SELECT 1" No puede usarse junto con --queries-file. |
--queries-file <path-to-file> | Ruta de un archivo que contiene consultas. --queries-file puede especificarse varias veces; por ejemplo, --queries-file queries1.sql --queries-file queries2.sql. No puede usarse junto con --query. |
-m [ --multiline ] | Si se especifica, permite consultas multilínea (no envía la consulta al pulsar Enter). Las consultas solo se enviarán cuando terminen con punto y coma. |
--inline-insert-data | Envía INSERT ... VALUES (y otros formatos inline) tal cual en el texto de la consulta, en lugar de convertir los datos en bloques en el formato nativo. El servidor analiza por sí mismo los datos inline, evitando el recorrido de ida y vuelta necesario para enviar al cliente la estructura de la tabla y los valores predeterminados de las columnas. Esto puede mejorar el rendimiento de muchas inserciones pequeñas a través del protocolo nativo. Establece automáticamente send_table_structure_on_insert_with_inline_data en 0. No puede combinarse con datos inline ni con datos externos (desde stdin o INFILE). |
Configuración de consultas
Opciones de formato
| Opción | Descripción | Predeterminado |
|---|---|---|
-f [ --format ] <format> | Use el formato especificado para mostrar el resultado. Consulte Formatos para datos de entrada y salida para ver una lista de formatos compatibles. | TabSeparated |
--pager <command> | Canalice toda la salida a este comando. Normalmente less (p. ej., less -S para mostrar conjuntos de resultados anchos) o similar. | - |
-E [ --vertical ] | Use el formato Vertical para mostrar el resultado. Equivale a –-format Vertical. En este formato, cada valor se imprime en una línea independiente, lo que resulta útil para mostrar tablas anchas. | - |
Detalles de ejecución
| Opción | Descripción | Predeterminado |
|---|---|---|
--enable-progress-table-toggle | Permite alternar la tabla de progreso al pulsar la tecla de control (Espacio). Solo se aplica en modo interactivo cuando está habilitada la impresión de la tabla de progreso. | enabled |
--hardware-utilization | Imprime información de uso del hardware en la barra de progreso. | - |
--memory-usage | Si se especifica, imprime el uso de memoria en stderr en modo no interactivo. Posibles valores: • none - no imprime el uso de memoria • default - imprime el número de bytes • readable - imprime el uso de memoria en un formato legible para humanos | - |
--print-profile-events | Imprime paquetes ProfileEvents. | - |
--progress | Imprime el progreso de ejecución de la consulta. Posibles valores: • tty|on|1|true|yes - envía la salida al terminal en modo interactivo • err - envía la salida a stderr en modo no interactivo • off|0|false|no - desactiva la impresión del progreso | tty en modo interactivo, off en modo no interactivo (por lotes) |
--progress-table | Imprime una tabla de progreso con métricas variables durante la ejecución de la consulta. Posibles valores: • tty|on|1|true|yes - envía la salida al terminal en modo interactivo • err - envía la salida a stderr en modo no interactivo • off|0|false|no - desactiva la tabla de progreso | tty en modo interactivo, off en modo no interactivo (por lotes) |
--stacktrace | Imprime las trazas de pila de las excepciones. | - |
-t [ --time ] | Imprime el tiempo de ejecución de la consulta en stderr en modo no interactivo (para benchmarks). | - |