ClickHouse¶
En este artículo
Información
ClickHouse es un sistema de gestión de bases de datos (SGBD) columnar de alto rendimiento diseñado para ejecutar consultas analíticas de clase OLAP. El SGBD está enfocado en analizar grandes volúmenes de datos con baja latencia y se utiliza ampliamente en tareas de analítica, monitoreo, registros (logging) y procesamiento de telemetría.
ClickHouse. Características principales¶
- Almacenamiento columnar: los datos se almacenan por columnas en lugar de filas, lo que acelera significativamente la ejecución de consultas analíticas y reduce el volumen de datos procesados.
- Alto rendimiento: optimizado para manejar conjuntos de datos masivos y capaz de ejecutar consultas sobre miles de millones de filas gracias al procesamiento vectorizado y la utilización eficiente de la CPU.
- Compresión de datos: emplea algoritmos de compresión especializados que pueden reducir drásticamente la cantidad de datos almacenados (a menudo varias veces menor que los SGBD basados en filas), especialmente bajo cargas de trabajo analíticas.
- Compatibilidad con SQL: admite sintaxis SQL extendida con funciones analíticas adicionales, simplificando la migración de aplicaciones existentes.
- Procesamiento distribuido: permite la creación de clústeres para escalado horizontal y procesamiento de datos en múltiples servidores.
- Replicación de datos: el soporte de replicación integrado garantiza tolerancia a fallos y alta disponibilidad de datos.
- Soporte para múltiples formatos de datos: puede importar y exportar datos en CSV, JSON, Parquet, Avro y otros formatos.
- Vistas materializadas: agrega automáticamente datos en segundo plano para acelerar consultas recurrentes.
- Integración con fuentes externas: admite la lectura directa de datos desde MySQL, PostgreSQL, MongoDB, Kafka, S3 y otros sistemas.
Funcionalidades de implementación¶
| ID | Nombre del software | SO compatible | VM | BM | VGPU | GPU | CPU mín. (núcleos) | RAM mín. (GB) | HDD/SSD mín. (GB) | Dominio personalizado | Activo |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 492 | ClickHouse | Ubuntu 24.04, Ubuntu 22.04 | + | + | + | + | 4 | 8 | 120 | No | ORDER |
-
Software instalado:
- ClickHouse Server >= 26.1.1
- ClickHouse Client >= 26.1.1
-
Especificaciones de instalación:
- Software instalado mediante el script oficial del desarrollador;
- Tiempo de instalación: 5-10 minutos;
- La base de datos está disponible para conexiones de red a través de varios clientes SQL;
- De forma predeterminada, se utiliza el usuario
defaultcon la contraseña de la cuentaroot.
Ubicaciones de archivos de configuración y datos:
- Configuración principal del servidor:
/etc/clickhouse-server/config.xml - Configuración de usuarios:
/etc/clickhouse-server/users.xml - Registros del servidor:
/var/log/clickhouse-server/clickhouse-server.log/var/log/clickhouse-server/clickhouse-server.err.log
- Datos:
/var/lib/clickhouse/ - Archivo PID:
/run/clickhouse-server/clickhouse-server.pid - Límites del sistema:
/etc/security/limits.d/clickhouse.conf
Puertos disponibles para conexiones:
| Puerto | Protocolo | Propósito | Estado | Clientes/Uso |
|---|---|---|---|---|
| 8123 | HTTP | Interfaz HTTP | Activo | DBeaver, DataGrip, Tableau, interfaz web, JDBC/ODBC |
| 9000 | TCP Nativo | Protocolo nativo de ClickHouse | Activo | clickhouse-client, controladores Python/Go |
| 9004 | MySQL | Emulación del protocolo MySQL | Activo | MySQL Workbench, cliente mysql |
| 9005 | PostgreSQL | Emulación del protocolo PostgreSQL | Activo | pgAdmin, cliente psql |
| 9009 | HTTP entre servidores | Replicación entre servidores | Activo | Comunicación intraclúster |
| 8443 | HTTPS | Interfaz HTTP con SSL | Opcional | Requiere configuración de certificado SSL |
| 9100 | gRPC | Interfaz gRPC | Opcional | Clientes gRPC |
Nota
Los puertos 8443 y 9100 están deshabilitados de forma predeterminada y requieren configuración adicional en /etc/clickhouse-server/config.xml.
Nota
A menos que se especifique lo contrario, instalamos la última versión de lanzamiento del software desde el sitio web oficial del desarrollador.
Primeros pasos después de implementar ClickHouse¶
Se enviará una notificación al correo electrónico especificado durante el registro indicando que el servidor está listo para trabajar después de pagar el pedido. Contendrá la dirección IP del VPS, así como el nombre de usuario y la contraseña para la conexión. Los clientes de nuestra empresa gestionan el hardware en el panel de control del servidor y la API - Invapi.
Detalles de autorización:
- Dirección IP del servidor: proporcionada en el correo electrónico y en el panel de control;
- Nombre de usuario:
default; - Contraseña: coincide con la contraseña de la cuenta
rooty se envía a la dirección de correo electrónico.
Importante
Para clientes de interfaz gráfica (DBeaver, DataGrip y otros) utilice el puerto 8123 (interfaz HTTP). El puerto 9000 está reservado únicamente para el clickhouse-client nativo.
Conexión a ClickHouse¶
Métodos de conexión
Esta sección describe las formas más comunes de conectarse a ClickHouse mediante clickhouse-client (cliente de línea de comandos) y DBeaver (interfaz gráfica). ClickHouse también admite conexiones a través de otros clientes: DataGrip, Tableau, MySQL Workbench (a través del puerto 9004), pgAdmin (a través del puerto 9005), así como bibliotecas de programación para Python, Go, Java y otros lenguajes.
Conexión mediante clickhouse-client¶
ClickHouse incluye un cliente de línea de comandos nativo para operaciones de base de datos.
1. Conexión desde el servidor (localmente):
2. Conexión desde una máquina remota:
3. Ejecución de una consulta simple:
4. Visualización de la lista de bases de datos:
Conexión mediante DBeaver¶
DBeaver es un cliente de interfaz gráfica universal para trabajar con varias bases de datos, incluido ClickHouse.
1. Instalación de DBeaver
Descargue e instale DBeaver desde el sitio web oficial.
2. Creación de una nueva conexión
- Inicie DBeaver
- Seleccione Database >> New Database Connection (o presione
Ctrl+Shift+N)

- En la lista de bases de datos, busque y seleccione ClickHouse

- Haga clic en
Next
3. Configuración de los parámetros de conexión
En la ventana de configuración, especifique los siguientes parámetros:
Host: <dirección IP de su servidor>
Port: 8123
Database/Schema: (dejar vacío o especificar default)
Username: default
Password: <root_password>

Críticamente importante
Para conexiones de DBeaver, utilice el puerto 8123.
4. Descarga del controlador JDBC
Al conectarse por primera vez, DBeaver le pedirá que descargue el controlador JDBC para ClickHouse:
- Haga clic en
Downloaden la ventana emergente:

- Espere a que finalice la descarga del controlador:

- Haga clic en
OK
5. Prueba de la conexión
- Haga clic en
Test Connection; - Si todo está configurado correctamente, aparecerá un mensaje: Connected (XXX ms):

- El mensaje incluirá:
- Servidor: ClickHouse X.X.X.XXX
- Controlador: ClickHouse JDBC Driver X.X.X
6. Finalización de la configuración
- Haga clic en
Finish; - La conexión aparecerá en Database Navigator;
- Expanda el árbol de conexión para ver bases de datos, tablas y otros objetos.

Problemas comunes:
| Error | Causa | Solución |
|---|---|---|
transport error: 400 | Se usó el puerto 9000 en lugar de 8123 | Cambiar al puerto 8123 |
Connection refused | IP incorrecta o el firewall bloquea el puerto | Verifique la dirección IP y las reglas del firewall |
Authentication failed | Nombre de usuario o contraseña incorrectos | Verifique las credenciales |
Hostname is not specified | Túnel SSH habilitado accidentalmente sin configuración | Cierre la pestaña SSH en la configuración de conexión |
Operaciones principales en ClickHouse¶
Creación de una base de datos¶
Creación de una tabla¶
CREATE TABLE my_database.events
(
event_date Date,
event_time DateTime,
user_id UInt32,
event_type String,
value Float64
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY (event_date, user_id);
Inserción de datos¶
INSERT INTO my_database.events VALUES
('2024-12-25', '2024-12-25 10:00:00', 1, 'click', 1.5),
('2024-12-25', '2024-12-25 10:05:00', 2, 'view', 2.3),
('2024-12-25', '2024-12-25 10:10:00', 1, 'purchase', 99.99);
Selección de datos¶
Consulta simple:
Agregación de datos:
SELECT
event_type,
count() as events_count,
avg(value) as avg_value
FROM my_database.events
WHERE event_date = '2024-12-25'
GROUP BY event_type;
Series temporales:
SELECT
toStartOfHour(event_time) as hour,
count() as events_per_hour
FROM my_database.events
WHERE event_date >= '2024-12-01'
GROUP BY hour
ORDER BY hour;
Importación de datos desde CSV¶
Creación de una tabla:
CREATE TABLE my_database.logs
(
timestamp DateTime,
level String,
message String
)
ENGINE = MergeTree()
ORDER BY timestamp;
Importación de datos:
Gestión de usuarios y privilegios¶
Creación de un usuario:
Concesión de permisos:
Visualización de usuarios:
Visualización de privilegios:
Gestión del servicio¶
Inicio del servicio:
Detención del servicio:
Reinicio del servicio:
Estado del servicio:
Visualización de registros:
Nota
Si no está operando como root, anteponga sudo a los comandos: sudo clickhouse start
Verificación de puertos activos¶
Para ver en qué puertos está escuchando ClickHouse:
O más detallado:
Para verificar los puertos configurados en la configuración:
Para verificar un puerto específico:
Salida esperada de la verificación de puertos:
LISTEN *:8123 clickhouse-serv (HTTP)
LISTEN *:9000 clickhouse-serv (Native TCP)
LISTEN *:9004 clickhouse-serv (MySQL)
LISTEN *:9005 clickhouse-serv (PostgreSQL)
LISTEN *:9009 clickhouse-serv (Interserver)
Nota
Información detallada sobre la configuración y optimización de ClickHouse está disponible en la documentación oficial del desarrollador.
Pedido de un servidor con ClickHouse¶
Para instalar este software utilizando la API, siga estas instrucciones.
Parte del contenido de esta página fue creado o traducido utilizando IA.