Cómo instalar el sistema de bases de datos OLAP de ClickHouse Ubuntu 22.04

ClickHouse es un sistema de gestión de bases de datos orientado a columnas desarrollado por ClickHouse, Inc. y escrito en C++. Es un sistema de gestión de bases de datos OLAP de código abierto que es rápido, tolerante a fallos, fácil de usar y muy fiable.

ClickHouse es un sistema de base de datos OLAP rapidísimo para el procesamiento analítico en línea. Te permite generar informes analíticos utilizando consultas SQL en tiempo real.

En este tutorial, aprenderás a instalar el sistema de base de datos OLAP ClickHouse en un servidor Ubuntu 22.04. También aprenderás a configurar la autenticación en ClickHouse y cubrirás su uso y consultas básicas.

Requisitos previos

Para completar este tutorial, necesitarás los siguientes requisitos previos:

  • Un servidor Ubuntu 22.04 – Este ejemplo utiliza un sistema Ubuntu con el nombre de host ‘clickhouse-server’ y la dirección IP ‘192.168.5.100’.
  • Un usuario no root con privilegios de administrador sudo/root.

Configuración del sistema

Antes de iniciar la instalación de ClickHouse, deberás asegurarte de que la CPU actual soporta el conjunto de instrucciones SSE 4.2 y desactivar SWAP en tu sistema.

El paquete binario oficial preconstruido para ClickHouse está compilado en la arquitectura x86 (64 bits) y el SSE 4.2. Por tanto, si no tienes una CPU compatible con SSE 4.2, debes compilar ClickHouse manualmente desde el código fuente.

Además, cuando utilices ClickHouse, se recomienda desactivar SWAP, especialmente en el entorno de producción.

Ejecuta el siguiente comando para comprobar que tu CPU es compatible con la función SSE 4.2. Deberías recibir el mensaje «SSE 4.2 soportado» si tu CPU es compatible.

grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

A continuación, ejecuta el siguiente comando para desactivar SWAP a través del archivo de configuración‘/etc/fstab‘. Este comando pondrá ‘#’ al principio de la configuración SWAP y desactivará SWAP en tu sistema de forma permanente.

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

Ahora ejecuta el siguiente comando para desactivar SWAP en la sesión actual. A continuación, comprueba el estado de SWAP.

sudo swapoff -a
sudo free -m

A continuación se muestra la salida que recibirás si el SWAP está desactivado – El tamaño del SWAP en el campo ‘total’ es 0.

comprueba el entorno

Con la CPU compatible con SSE 4.2 y el WAP desactivado, ya estás preparado para instalar el Sistema de bases de datos OLAP de ClickHouse.

Instalación del Sistema de Bases de Datos OLAP Clickhouse

El Sistema de Bases de Datos OLAP ClickHouse ofrece varios métodos de instalación. Para las distribuciones de Linux, ClcikHouse proporciona repositorios tanto para las distribuciones basadas en Debian como para las basadas en RPM. Además, ClickHouse está disponible con instalación mediante Docker o utilizando un único paquete binario.

En este paso, instalarás ClickHouse en un sistema Ubuntu 22.04 a través del repositorio oficial. Por lo tanto, añadirás el repositorio ClickHouse a tu sistema y, a continuación, instalarás el paquete ClickHouse mediante APT.

Para empezar, ejecuta el siguiente comando apt para instalar algunas dependencias básicas. Cuando te lo pida, introduce y y pulsa ENTER.

sudo apt install apt-transport-https ca-certificates dirmngr

instal dependencies

Ahora ejecuta el siguiente comando para añadir la clave GPG y el repositorio ClickHouse a tu sistema. En este ejemplo, instalarás ClickHouse desde la rama estable del repositorio.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee \
    /etc/apt/sources.list.d/clickhouse.list

configurar repositorio

A continuación, actualiza y refresca tu índice de paquetes mediante el siguiente comando apt.

sudo apt update

Recibirás que se ha añadido el repositorio ClickHouse.

actualizar repo

Ahora instala el paquete ‘clickhouse-server‘ como sistema de base de datos y el paquete‘clickhouse-client‘ mediante el comando apt que aparece a continuación.

sudo apt install clickhouse-server clickhouse-client

Introduce Y cuando se te pida confirmación y pulsa ENTER para continuar.

instalar servidor clickhouse

Además, durante la instalación de ClickHouse, se te pedirá que establezcas una contraseña para el usuario predeterminado de ClickHouse. Introduce una nueva contraseña para ClickHouse y recibirás un mensaje como el que se muestra en la siguiente captura de pantalla cuando finalice la instalación.

configurar contraseña por defecto

Con ClickHouse instalado, ejecuta el siguiente comando systemctl para iniciar y activar el servicio ClickHouse. Este comando iniciará ClickHouse y permitirá que el servicio se ejecute automáticamente al arrancar.

sudo systemctl start clickhouse-server
sudo systemctl enable clickhouse-server

Verifica el servicio ClicHouse con el siguiente comando para asegurarte de que el servicio ClickHouse se está ejecutando.

sudo systemctl status clickhouse-server

Recibirás una salida como la siguiente – El estado actual del servicio ClickHpouse es en ejecución y está habilitado y se ejecutará automáticamente al arrancar.

empezar a verificar ClickHouse

Has finalizado la instalación del servidor ClickHouse. En el siguiente paso, aprenderás a acceder al servidor ClickHouse a través de la aplicación cliente y a configurar la autenticación de contraseña para el usuario administrador de ClickHouse.

Acceder a ClickHouse a través de la línea de comandos

Con el servidor ClickHouse instalado, puedes acceder a ClickHouse a través del ‘clickhouse-client‘ que también has instalado.

El ‘clickhouse-client’ es una interfaz de línea de comandos para interactuar y gestionar el servidor ClickHouse. Es similar al cliente‘mysql‘ para el servidor MySQL/MariaDB,‘psql‘ para el servidor PostgreSQL o‘mongod‘ para el servidor MongoDB.

Para acceder al servidor ClickHouse, puedes utilizar el comando‘clickhouse-client‘ que se indica a continuación.

sudo clickhouse-client --password

Cuando te pida la contraseña, introduce la contraseña que creaste durante la instalación.

Después de acceder, deberías ver el intérprete de comandos de ClickHouse como el siguiente.

conéctate a clickhouse

Desde aquí, puedes ver que te has conectado al servidor ClickHouse v22.11 con el usuario ClickHouse por defecto. El servidor ClickHouse se ejecuta por defecto en localhost con el puerto 9000.

Llegados a este punto, ya has instalado el servidor y el cliente ClickHouse y has aprendido a conectarte al servidor ClickHouse mediante el comando‘clickhouse-client‘. En el siguiente paso, configurarás un usuario administrador para el servidor ClickHouse.

Configurar un usuario administrador en Clickhouse

En este paso, crearás un usuario administrador para el servidor ClickHouse. Pero antes, habilitarás la «Gestión de cuentas» para el usuario «por defecto» a través de la configuración de ClickHouse.

Para empezar, abre la configuración ‘/etc/clickhouse-server/users.d/default_password.xml ‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/clickhouse-server/users.d/default_password.xml

Añade la siguiente línea entre la sección ‘<default>…</default>’. Esto habilitará la«Gestión de acceso» para el usuario«por defecto«.

<clickhouse>
    <users>
        <default>
            ...
            <access_management>1</access_management>
        </default>
    </users>
</clickhouse>

Guarda el archivo y sal del editor cuando hayas terminado.

Ahora ejecuta el siguiente comando systemctl para reiniciar el servicio ClickHouse y aplicar los cambios.

sudo systemctl restart clickhouse-server

Ahora que el‘access_management ‘ está habilitado para el usuario ‘default’, crearás un nuevo usuario administrador para ClickHouse. El nuevo usuario podrá acceder a todas las bases de datos con todos los privilegios en el servidor ClickHouse.

Ejecuta el siguiente comando‘clickhouse-client‘ para conectarte al servidor ClickHouse a través del usuariodefault’.

sudo clickhouse-client --user default --password

Cuando te pida la contraseña, introduce la contraseña que hayas configurado. Ahora accederás a la consola del servidor ClickHouse e inicia sesión como usuario ‘default con‘access_management‘ activado.

configuración clickhouse

A continuación, ejecuta la siguiente consulta para crear un nuevo usuario ClickHouse. Y asegúrate de cambiar el nombre de usuario, la contraseña y la dirección IP del host. Este ejemplo creará un nuevo usuario‘halsey‘ con la contraseña ‘password’ y hash con SHA256. La opción ‘IPHOST‘ te permite especificar la dirección IP que se utilizará para conectarse al servidor ClickHouse. En este ejemplo, sólo se permite desde localhost o‘127.0.0.1‘.

CREATE USER halsey HOST IP '127.0.0.1' IDENTIFIED WITH sha256_password BY 'password';

crear un nuevo usuario

Ahora ejecuta la siguiente consulta para conceder todos los privilegios en el servidor ClickHouse al usuario‘halsey‘.

GRANT ALL ON *.* TO halsey WITH GRANT OPTION;

conceder privilegios

A continuación, comprueba la lista de usuarios del servidor ClickHouse mediante la siguiente consulta. Deberías ver que el nuevo usuario ‘halsey’ se ha añadido a ClickHouse.

SHOW USERS;

mostrar usuarios

Ahora escribe ‘quit’ en el cliente de la consola ClickHouse para salir.

Con el nuevo usuario administrador de la base de datos creado, deberás desactivar el‘access_management ‘ para el usuario‘default’ en tu servidor ClickHouse.

Abre la configuración‘/etc/clickhouse-server/users.d/default_password.xml‘ utilizando el siguiente comando del editor nano.

sudo nano /etc/clickhouse-server/users.d/default_password.xml

Cambia la opción‘access_management‘ a‘0‘ para desactivar la‘Gestión de Acceso’ para el usuario‘por defecto‘.

<clickhouse>
    <users>
        <default>
            ...
            <access_management>0</access_management>
        </default>
    </users>
</clickhouse>

Guarda el archivo y sal del editor cuando hayas terminado.

Reinicia el servicio ClickHouse para aplicar los cambios mediante la utilidad de comandos systemctl que se indica a continuación.

sudo systemctl restart clickhouse-server

Por último, ejecuta el siguiente comando para iniciar sesión en el servidor ClickHouse como usuario ‘halsey’. Cuando se te pida la contraseña, introdúcela y pulsa INTRO para iniciar la sesión.

sudo clickhouse-client --user halsey --password

Después de iniciar sesión, recibirás un resultado como el de la siguiente captura de pantalla. El nuevo usuario administrador de ClickHouse ‘halsey’ se ha añadido y el inicio de sesión se ha realizado correctamente.

conectarse como usuario

Con el nuevo usuario administrador del servidor ClickHouse creado, a continuación aprenderás a utilizar ClickHouse para crear bases de datos y tablas e insertar y recuperar datos mediante la consulta SQL de ClickHouse.

Consultas básicas en el sistema de bases de datos ClickHouse

En este paso, aprenderás la consulta básica del Sistema de Bases de Datos ClickHouse, que es similar a las consultas SQL comunes. Aprenderás a crear una base de datos y una tabla, a insertar y recuperar datos de la base de datos y, a continuación, el uso básico de la consulta‘ALTER‘ que puedes utilizar para cambiar los datos existentes en el servidor ClickHouse.

En primer lugar, ejecuta la siguiente consulta para crear una nueva base de datos. En este ejemplo, crearás una nueva base de datos‘testdb‘.

CREATE DATABASE testdb;

crear base de datos

Pasa atestdb’ mediante la siguiente consulta‘USE dbname’.

USE testdb;

utilizar base de datos

Ahora, crea una nueva tabla, ‘usuarios’, con la siguiente consulta. La tabla ‘usuarios‘ tendrá los siguientes campos

  • id con tipo ‘UInt64’ para almacenar valores enteros.
  • name con el tipo ‘String’ para almacenar cadenas de caracteres.
  • last_login con el tipo ‘DateTime’ para almacenar datos en formato fecha-hora.
  • El motor aquí es ‘MergeTree’, utilizado sobre todo en ClickHouse.
CREATE TABLE users (id UInt64, name String, jobs String, last_login DateTime) ENGINE=MergeTree() PRIMARY KEY id ORDER BY id;

crear tabla

A continuación, ejecuta la siguiente consulta para insertar nuevos datos en la tabla ‘usuarios’. En la siguiente consulta, insertarás tres datos diferentes en la tabla «usuarios«.

INSERT INTO users VALUES (1, 'alice', 'DevOps', '2022-10-10 00:10:10');
INSERT INTO users VALUES (2, 'alex', 'Manager', '2022-09-05 01:19:10');
INSERT INTO users VALUES (3, 'janet', 'Developer', '2022-05-05 04:29:10');

Inserta el primer dato.

insertar datos 1

Inserta el segundo dato.

insertar datos 2

Inserta el tercer dato.

insertar datos 3

Ejecuta la siguiente consulta para recuperar datos de la tabla ‘usuarios‘. Deberías ver los tres nuevos campos de datos que acabas de añadir.

SELECT * FROM users;

recuperar datos

Has aprendido a crear la base de datos, cambiar a la base de datos, crear la tabla, insertar datos y recuperar datos en el Sistema de Bases de Datos OLAP ClickHouse. A continuación, aprenderás a modificar datos con la consulta ‘ALTER‘.

Ejecuta la siguiente consulta ‘ALTER TABLE’ para actualizar los datos existentes en la tabla ‘usuarios’. En este ejemplo, cambiarás el campo «trabajos» del usuario«alex» por«administrador«.

ALTER TABLE users UPDATE jobs = 'Administrator' WHERE name = 'alex';

Comprueba los nuevos datos actualizados en la tabla «usuarios» mediante la siguiente consulta. Ahora deberías obtener los nuevos datos del usuario ‘alex‘ actualizados a ‘Administrador‘.

SELECT * FROM users;

Modificar datos con ALTER

Ahora que has aprendido el uso básico de la consulta ClickHouse para crear y cambiar bases de datos, crear tablas, insertar datos y recuperar datos. Y también has aprendido a utilizar la consulta‘ALTER‘ para modificar datos existentes en la base de datos ClickHouse. A continuación, limpiarás tu instalación de ClickHouse.

Limpieza del entorno

Con la nueva base de datos y la tabla creadas y los datos aleatorios insertados, en este último paso, limpiarás la instalación del Sistema de Bases de Datos ClickHouse eliminando la base de datos y la tabla que acabas de crear.

Ejecuta la siguiente consulta, ‘DROP TABLE’, para eliminar la tabla de usuarios de la base de datos ‘testdb’.

DROP TABLE users;

tabla de caída

Ahora elimina la base de datos ‘testdb’ mediante la consulta ‘DROPDATABASE‘ que aparece a continuación.

DROP DATABASE testdb;

soltar base de datos

Por último, comprueba la lista de bases de datos del servidor ClickHouse mediante la siguiente consulta. Deberías ver que la base de datos «testdb» se ha eliminado del servidor ClickHouse.

SHOW DATABASES;

verificar base de datos

Ahora tu instalación de ClickHouse está limpia con el usuario admin también configurado.

Conclusión

¡Enhorabuena! Has terminado la instalación del Sistema de Bases de Datos OLAP ClickHouse y has aprendido a configurar un usuario administrador en CLickHouse. Y, por último, también has aprendido la consulta básica para crear una base de datos y una tabla, insertar y recuperar datos, modificar los datos existentes y limpiar la base de datos y la tabla.

También te podría gustar...