Cómo instalar el sistema de bases de datos OLAP de ClickHouse en Debian 11

ClickHouse es un sistema de gestión de bases de datos gratuito, de código abierto y orientado a las columnas. Se utiliza para el procesamiento analítico en línea y permite generar informes analíticos mediante consultas SQL en tiempo real. Almacena los registros en bloques agrupados por columnas en lugar de por filas. Así, gasta menos tiempo en leer los datos al completar las consultas. Además, las bases de datos orientadas a columnas pueden calcular y devolver resultados mucho más rápido que los sistemas tradicionales basados en filas para determinadas cargas de trabajo.

En este post, te mostraremos cómo instalar la base de datos ClickHoust en Debian 11.

Requisitos previos

  • Un servidor con Debian 11.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Antes de empezar, tendrás que actualizar los paquetes de tu sistema a la versión actualizada. Puedes actualizarlos ejecutando el siguiente comando:

apt-get update -y

Una vez actualizados todos los paquetes, instala otros paquetes necesarios mediante el siguiente comando:

apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -y

Una vez instalados todos los paquetes necesarios, puedes pasar al siguiente paso.

Instalar ClickHouse en Debian 11

Por defecto, el paquete ClickHouse no está incluido en el repositorio por defecto de Debian 11. Así que tendrás que añadir el repositorio de ClickHouse a tu sistema.

En primer lugar, descarga y añade la clave GPG con el siguiente comando:

apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4

Obtendrás la siguiente salida:

Executing: /tmp/apt-key-gpghome.WyTt1Mpvh7/gpg.1.sh --keyserver keyserver.ubuntu.com --recv E0C56BD4
gpg: key C8F1E19FE0C56BD4: public key "ClickHouse Repository Key <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1

A continuación, añade el repositorio de ClickHouse a la APT utilizando el siguiente comando:

echo "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/" | tee /etc/apt/sources.list.d/clickhouse.list

A continuación, actualiza el repositorio e instala ClickHouse con el siguiente comando:

apt-get update -y
apt-get install clickhouse-server clickhouse-client -y

Durante la instalación, se te pedirá que proporciones una contraseña para el usuario administrador de ClickHouse, como se muestra a continuación:

Enter password for default user: 
Password for default user is saved in file /etc/clickhouse-server/users.d/default-password.xml.
Setting capabilities for clickhouse binary. This is optional.
 chown -R clickhouse:clickhouse '/etc/clickhouse-server'

ClickHouse has been successfully installed.

Start clickhouse-server with:
 sudo clickhouse start

Start clickhouse-client with:
 clickhouse-client --password

Synchronizing state of clickhouse-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable clickhouse-server
Created symlink /etc/systemd/system/multi-user.target.wants/clickhouse-server.service → /etc/systemd/system/clickhouse-server.service.
Setting up clickhouse-client (21.12.3.32) ...

Una vez completada la instalación, puedes pasar al siguiente paso.

Gestionar el servicio ClickHouse

Ahora puedes iniciar el servicio ClickHouse y habilitarlo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start clickhouse-server 
systemctl enable clickhouse-server

Ahora puedes verificar el estado de ClickHouse con el siguiente comando:

systemctl status clickhouse-server

Obtendrás la siguiente salida:

? clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
     Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-12-31 11:22:57 UTC; 9s ago
   Main PID: 18152 (clckhouse-watch)
      Tasks: 206 (limit: 2341)
     Memory: 108.2M
        CPU: 931ms
     CGroup: /system.slice/clickhouse-server.service
             ??18152 clickhouse-watchdog        --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-serve>
             ??18153 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml --pid-file=/run/clickhouse-server/clickhouse-serve>

Dec 31 11:22:57 debian11 systemd[1]: Started ClickHouse Server (analytic DBMS for big data).
Dec 31 11:22:57 debian11 clickhouse-server[18152]: Processing configuration file '/etc/clickhouse-server/config.xml'.
Dec 31 11:22:57 debian11 clickhouse-server[18152]: Logging trace to /var/log/clickhouse-server/clickhouse-server.log
Dec 31 11:22:57 debian11 clickhouse-server[18152]: Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Processing configuration file '/etc/clickhouse-server/config.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Saved preprocessed configuration to '/var/lib/clickhouse/preprocessed_configs/config.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Processing configuration file '/etc/clickhouse-server/users.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Merging configuration file '/etc/clickhouse-server/users.d/default-password.xml'.
Dec 31 11:22:58 debian11 clickhouse-server[18153]: Saved preprocessed configuration to '/var/lib/clickhouse/preprocessed_configs/users.xml'.

Cómo utilizar ClickHouse

En esta sección, te mostraremos cómo conectar con ClickHouse, crear una base de datos y una tabla.

En primer lugar, conéctate a ClickHouse con el siguiente comando:

clickhouse-client --password

Se te pedirá que proporciones la contraseña por defecto como se muestra a continuación:

ClickHouse client version 21.12.3.32 (official build).
Password for user (default): 

Provide the password which you have set during the installation and press the Enter key. You will get the following shell:

Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.12.3 revision 54452.

debian11 :) 

Ahora, crea una base de datos llamada testdb utilizando el siguiente comando:

debian11 :) CREATE DATABASE testdb;

Obtendrás la siguiente salida:

CREATE DATABASE testdb

Query id: a48b3031-a363-4357-b4f9-ffd3edd73b0e

Ok.

0 rows in set. Elapsed: 0.005 sec. 

A continuación, cambia la base de datos a testdb utilizando el siguiente comando:

debian11 :) USE testdb;

Obtendrás el siguiente resultado:

USE testdb

Query id: 827e0d94-c3eb-46ec-ba04-97386a58e531

Ok.

0 rows in set. Elapsed: 0.001 sec. 

A continuación, crea una tabla llamada table1 utilizando el siguiente comando:

debian11 :) CREATE TABLE table1 (? id UInt64,? name String,? url String,? created DateTime?) ENGINE = MergeTree()?PRIMARY KEY id?ORDER BY id;

Obtendrás el siguiente resultado:

CREATE TABLE table1
(
    `id` UInt64,
    `name` String,
    `url` String,
    `created` DateTime
)
ENGINE = MergeTree
PRIMARY KEY id
ORDER BY id

Query id: 922f4fe1-283f-4e5d-9966-498344b2aa4d

Ok.

0 rows in set. Elapsed: 0.006 sec. 

A continuación, inserta algún valor en la tabla utilizando el siguiente comando:

debian11 :) INSERT INTO table1 VALUES (1, 'jay', 'http://howtoforge.com', '2021-12-31 00:01:01');

Obtendrás el siguiente resultado:

INSERT INTO table1 FORMAT Values

Query id: be1c57cd-5759-47cd-8649-ce82cd0c1f7d

Ok.

1 rows in set. Elapsed: 0.005 sec. 

A continuación, añade una nueva columna mediante el siguiente comando:

debian11 :) ALTER TABLE table1 ADD COLUMN location String;

Obtendrás el siguiente resultado:

ALTER TABLE table1
    ADD COLUMN `location` String

Query id: 106fa166-afda-4598-a32c-b50da237bfe5

Ok.

0 rows in set. Elapsed: 0.007 sec. 

Si quieres recuperar los datos de la tabla, ejecuta el siguiente comando:

debian11 :) SELECT url, name FROM table1 WHERE url = 'http://howtoforge.com' LIMIT 1;

Obtendrás la siguiente salida:

SELECT
    url,
    name
FROM table1
WHERE url = 'http://howtoforge.com'
LIMIT 1

Query id: 8ee433ec-0eb1-4409-b9a8-7e5794b872ce

??url?????????????????????name??
? http://howtoforge.com ? jay  ?
????????????????????????????????

1 rows in set. Elapsed: 0.007 sec. 

Para eliminar una columna, ejecuta el siguiente comando:

debian11 :) ALTER TABLE table1 DROP COLUMN location;

Para eliminar una tabla, ejecuta el siguiente comando:

debian11 :) DROP TABLE table1;

Para eliminar una base de datos, ejecuta el siguiente comando

debian11 :) DROP DATABASE testdb;

Para salir del shell de ClickHouse, ejecuta el siguiente comando:

debian11 :) exit;

Habilitar la interfaz web de ClickHouse

ClickHouse también proporciona una interfaz basada en la web para gestionar la base de datos. Sin embargo, está desactivada por defecto. Puedes activarla editando el archivo de configuración de ClickHouse:

nano /etc/clickhouse-server/config.xml

Descomenta y cambia las siguientes líneas:

 <listen_host>0.0.0.0</listen_host>
    <http_server_default_response><![CDATA[<html ng-app="SMI2"><head><base href="http://ui.tabix.io/"></head><body><div ui-view="" class="content-ui"></div><script src="http://loader.tabix.io/master.js"></script></body></html>]]></http_server_default_response>

Guarda y cierra el archivo y luego reinicia el servicio ClickHouse para aplicar los cambios de configuración:

systemctl restart clickhouse-server

Acceder a la interfaz web de ClickHouse

Por defecto, la interfaz web de ClickHouse escucha en el puerto 8123. Puedes comprobarlo con el siguiente comando:

ss -antpl | grep 8123

Deberías ver la siguiente salida:

LISTEN 0      4096         0.0.0.0:8123      0.0.0.0:*    users:(("clickhouse-serv",pid=18580,fd=158)) 

Ahora, abre tu navegador web y accede a la interfaz web de ClickHouse utilizando la URL http://your-server-ip:8123. Deberías ver la siguiente pantalla:

Interfaz web de ClickHouse

Proporciona tu nombre de usuario y contraseña por defecto y haz clic en el botón Iniciar sesión. Una vez que hayas iniciado la sesión, deberías ver la siguiente pantalla:

Tabix

Conclusión

En la guía anterior, hemos explicado cómo instalar el sistema de base de datos ClickHouse en Debian 11. También hemos explicado cómo crear y gestionar bases de datos y activar la interfaz web de ClickHouse. Espero que esto te ayude a instalar ClickHouse en el entorno de producción. No dudes en preguntarme si tienes alguna duda.

También te podría gustar...