ClickHouse¶
En este artículo
Información
ClickHouse es un sistema de gestión de bases de datos (DBMS) columnar de alto rendimiento diseñado para ejecutar consultas analíticas de clase OLAP. El DBMS se centra en analizar grandes volúmenes de datos con baja latencia y se utiliza ampliamente en tareas de análisis, monitorización, registro (logging) y procesamiento de telemetría.
ClickHouse. Funcionalidades 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 una 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 más pequeños que un DBMS basado en filas), especialmente bajo cargas de trabajo analíticas.
- Compatibilidad con SQL: admite sintaxis SQL extendida con funciones analíticas adicionales, lo que simplifica la migración de aplicaciones existentes.
- Procesamiento distribuido: permite la creación de clústeres para el escalado horizontal y el procesamiento de datos a través de múltiples servidores.
- Replicación de datos: el soporte de replicación integrado garantiza la tolerancia a fallos y una alta disponibilidad de los datos.
- Soporte para múltiples formatos de datos: puede importar y exportar datos en CSV, JSON, Parquet, Avro y otros formatos.
- Vistas materializadas: agrega datos automáticamente en segundo plano para acelerar las 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 | PEDIR |
Información
Para obtener información sobre las funcionalidades de implementación de este software, consulte este enlace
Nota
Los puertos 8443 y 9100 están desactivados por defecto y requieren una 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 tras 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 haber pagado el pedido. Contendrá la dirección IP del VPS, así como el login y la contraseña para la conexión. Los clientes de nuestra empresa gestionan el hardware en el panel de control de servidores y API - Invapi.
Detalles de autorización:
- Server IP address: se proporciona en el correo electrónico y en el panel de control;
- Login:
default; - Password: coincide con la contraseña de la cuenta
rooty se envía a la dirección de correo electrónico.
Atención
Para clientes GUI (DBeaver, DataGrip y otros) utilice el puerto 8123 (interfaz HTTP). El puerto 9000 está reservado únicamente para el cliente nativo clickhouse-client.
Conexión a ClickHouse¶
Métodos de conexión
Esta sección describe las formas más comunes de conectarse a ClickHouse a través de 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 librerías de programación para Python, Go, Java y otros lenguajes.
Conexión mediante clickhouse-client¶
ClickHouse incluye un cliente nativo de línea de comandos para operaciones de la 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 GUI universal para trabajar con diversas bases de datos, incluyendo 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: <IP-address of your server>
Port: 8123
Database/Schema: (dejar vacío o especificar el predeterminado)
Username: default
Password: <root_password>

Atención
Para las conexiones en 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 el controlador termine de descargarse:

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

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

Problemas comunes:
| Error | Causa | Solución |
|---|---|---|
transport error: 400 | Se utiliza el puerto 9000 en lugar del 8123 | Cambiar al puerto 8123 |
Connection refused | IP incorrecta o el firewall bloquea el puerto | Verificar la dirección IP y las reglas del firewall |
Authentication failed | Login o contraseña incorrectos | Verificar las credenciales |
Hostname is not specified | Túnel SSH activado accidentalmente sin configuración | Cerrar 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¶
Iniciar el servicio:
Detめて la servicio:
Reiniciar el servicio:
Estado del servicio:
Visualización de logs:
Nota
Si no está operando como root, anteponga sudo a los comandos: sudo clickhouse start
Comprobación de puertos activos¶
Para ver en qué puertos está escuchando ClickHouse:
O de forma más detallada:
Para comprobar los puertos configurados en la configuración:
Para comprobar un puerto específico:
Salida esperada de la comprobació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
La información detallada sobre la configuración y optimización de ClickHouse está disponible en la documentación oficial para desarrolladores.
Pedir un servidor con ClickHouse¶
Para instalar este software utilizando la API, siga estas instrucciones.