Saltar al contenido principal

Cuándo usar clickhouse-local vs. ClickHouse

clickhouse-local es una versión de ClickHouse fácil de usar, ideal para desarrolladores que necesitan procesar rápidamente archivos locales y remotos con SQL sin tener que instalar un servidor de base de datos completo. Con clickhouse-local, los desarrolladores pueden usar comandos SQL (con el dialecto SQL de ClickHouse) directamente desde la línea de comandos, lo que ofrece una forma sencilla y eficiente de acceder a las capacidades de ClickHouse sin necesidad de una instalación completa. Uno de los principales beneficios de clickhouse-local es que ya se incluye al instalar clickhouse-client. Esto significa que los desarrolladores pueden empezar a usar clickhouse-local rápidamente, sin necesidad de un proceso de instalación complejo. Aunque clickhouse-local es una excelente herramienta para desarrollo, pruebas y procesamiento de archivos, no es adecuado para dar servicio a usuarios finales ni a aplicaciones. En estos casos, se recomienda usar la versión open-source de ClickHouse. ClickHouse es una potente base de datos OLAP diseñada para gestionar cargas de trabajo analíticas a gran escala. Proporciona un procesamiento rápido y eficiente de consultas complejas sobre grandes conjuntos de datos, lo que la hace ideal para entornos de producción en los que el alto rendimiento es fundamental. Además, ClickHouse ofrece una amplia gama de capacidades, como replicación, sharding y alta disponibilidad, que son esenciales para escalar, manejar grandes conjuntos de datos y dar servicio a aplicaciones. Si necesita manejar conjuntos de datos más grandes o dar servicio a usuarios finales o aplicaciones, le recomendamos usar la versión open-source de ClickHouse en lugar de clickhouse-local. Consulte la documentación a continuación, donde se muestran casos de uso de clickhouse-local, como consultar un archivo local o leer un archivo Parquet en S3.

Descargar clickhouse-local

clickhouse-local se ejecuta con el mismo binario clickhouse que utiliza el servidor ClickHouse y clickhouse-client. La forma más sencilla de descargar la versión más reciente es con el siguiente comando:
El binario que acabas de descargar puede ejecutar todo tipo de herramientas y utilidades de ClickHouse. Si quieres ejecutar ClickHouse como servidor de bases de datos, consulta la Inicio rápido.

Consultar datos de un archivo con SQL

Un uso habitual de clickhouse-local es ejecutar consultas ad hoc sobre archivos, sin tener que insertar los datos en una tabla. clickhouse-local puede leer los datos de un archivo en una tabla temporal y ejecutar tu SQL. Si el archivo está en la misma máquina que clickhouse-local, puedes simplemente especificar el archivo que quieres cargar. El siguiente archivo reviews.tsv contiene una muestra de reseñas de productos de Amazon:
Este comando es una abreviatura de:
ClickHouse reconoce por la extensión del nombre del archivo que usa un formato separado por tabulaciones. Si necesitas especificar el formato explícitamente, simplemente agrega uno de los muchos formatos de entrada de ClickHouse:
La función de tabla file crea una tabla y puedes usar DESCRIBE para ver el esquema inferido:
Puede usar globs en el nombre del archivo (consulte sustituciones de globs).Ejemplos:
Busquemos un producto con la valoración más alta:

Consultar datos en un archivo Parquet en AWS S3

Si tienes un archivo en S3, usa clickhouse-local y la función de tabla s3 para consultar el archivo directamente (sin insertar los datos en una tabla de ClickHouse). Tenemos un archivo llamado house_0.parquet en un bucket público que contiene los precios de las viviendas vendidas en el Reino Unido. Veamos cuántas filas tiene:
El archivo tiene 2,7 millones de filas:
Siempre es útil ver cuál es el esquema que ClickHouse infiere a partir del archivo:
Veamos cuáles son los barrios más caros:
Cuando esté listo para insertar sus archivos en ClickHouse, inicie un servidor de ClickHouse e inserte los resultados de las funciones de tabla file y s3 en una tabla MergeTree. Consulte Inicio rápido para obtener más información.

Conversión entre formatos

Puede usar clickhouse-local para convertir datos entre distintos formatos. Ejemplo:
Los formatos se detectan automáticamente a partir de las extensiones de archivo:
Como método abreviado, puede escribirlo con el argumento --copy:

Uso

De forma predeterminada, clickhouse-local tiene acceso a los datos de un servidor de ClickHouse en el mismo host y no depende de la configuración del servidor. También permite cargar la configuración del servidor mediante el argumento --config-file. Para los datos temporales, se crea por defecto un directorio temporal de datos único. Uso básico (Linux):
Uso básico (Mac):
clickhouse-local también es compatible con Windows a través de WSL2.
Argumentos:
  • -S, --structure — estructura de la tabla para los datos de entrada.
  • --input-format — formato de entrada; TSV de forma predeterminada.
  • -F, --file — ruta de los datos; stdin de forma predeterminada.
  • -q, --query — consultas que se ejecutarán usando ; como delimitador. --query puede especificarse varias veces; p. ej., --query "SELECT 1" --query "SELECT 2". No puede usarse simultáneamente con --queries-file.
  • --queries-file - ruta del archivo con las consultas que se ejecutarán. --queries-file puede especificarse varias veces; p. ej., --query queries1.sql --query queries2.sql. No puede usarse simultáneamente con --query.
  • --multiquery, -n – Si se especifica, se pueden indicar varias consultas separadas por punto y coma después de la opción --query. Para mayor comodidad, también es posible omitir --query y pasar las consultas directamente después de --multiquery.
  • -N, --table — nombre de la tabla en la que se colocarán los datos de salida; table de forma predeterminada.
  • -f, --format, --output-format — formato de salida; TSV de forma predeterminada.
  • -d, --database — base de datos predeterminada; _local de forma predeterminada.
  • --stacktrace — indica si se debe volcar la salida de depuración en caso de excepción.
  • --echo — imprime la consulta antes de ejecutarla.
  • --verbose — muestra más detalles sobre la ejecución de la consulta.
  • --logger.console — registrar en la consola.
  • --logger.log — nombre del archivo de registro.
  • --logger.level — nivel de registro.
  • --ignore-error — no detener el procesamiento si falla una consulta.
  • -c, --config-file — ruta al archivo de configuración en el mismo formato que el del servidor ClickHouse; de forma predeterminada, la configuración está vacía.
  • --no-system-tables — no adjuntar las tablas del sistema.
  • --help — referencia de argumentos para clickhouse-local.
  • -V, --version — imprime la información de la versión y sale.
Además, hay argumentos para cada variable de configuración de ClickHouse que suelen usarse en lugar de --config-file.

Comandos

Comando LS

Muestra todos los archivos del directorio de trabajo actual a los que puede acceder clickhouse-local. Puede ejecutarlo en modo interactivo así:
Query
Response
También puede ejecutarse como una consulta con el argumento -q:
Response

Comando CLEAR

Limpia la pantalla del terminal (similar al comando clear en Linux o a Ctrl+L en muchos terminales). Es una acción del cliente: no se envía al motor SQL. En clickhouse-local, el metacomando se reconoce en modo interactivo y con entrada mediante -q y --queries-file (por la misma vía del cliente que -q, en la misma línea que ls), por lo que un clear sin más no produce un error UNKNOWN_IDENTIFIER. En clickhouse-client --queries-file remoto no hay cambios: el contenido del archivo se ejecuta únicamente como SQL (sin metacomandos a nivel de texto). En clickhouse-client, solo se reconoce en modo interactivo. Con -q o archivos de consultas, clear sigue interpretándose como SQL, de modo que la automatización conserva el comportamiento de error anterior en lugar de convertir errores tipográficos en un no-op silencioso. Formas admitidas: clear, CLEAR, /clear (se ignora un ; final opcional). Si la salida estándar no es un terminal (por ejemplo, al redirigir la salida por una tubería), el metacomando se acepta cuando se reconoce, pero no emite secuencias de control. Con clickhouse-local y -q:

Ejemplos

Query
El ejemplo anterior es el mismo que:
Query
No es necesario usar stdin ni el argumento --file, y puedes abrir cualquier cantidad de archivos con la función de tabla file:
Query
Ahora mostremos qué usuario de memoria corresponde a cada usuario de Unix:
Query
Response
Última modificación el 12 de junio de 2026