ClickHouse est un système de gestion de base de données gratuit, open source et orienté colonne. Il est utilisé pour le traitement analytique en ligne et vous permet de générer des rapports analytiques à l'aide de requêtes SQL en temps réel. Il stocke les enregistrements dans des blocs regroupés par colonnes au lieu de lignes. Ainsi, il passe moins de temps à lire les données tout en complétant les requêtes. En outre, les bases de données orientées colonnes peuvent calculer et renvoyer des résultats beaucoup plus rapidement que les systèmes traditionnels basés sur des lignes pour certaines charges de travail.
Dans cet article, nous vous montrerons comment installer la base de données ClickHoust sur Debian 11.
Prérequis
- Un serveur exécutant Debian 11.
- Un mot de passe root est configuré sur votre serveur.
Mise en route
Avant de commencer, vous devrez mettre à jour vos packages système vers la version mise à jour. Vous pouvez les mettre à jour en exécutant la commande suivante :
apt-get update -y
Une fois tous les packages mis à jour, installez les autres packages requis à l'aide de la commande suivante :
apt-get install curl gnupg2 wget git apt-transport-https ca-certificates -y
Une fois tous les packages requis installés, vous pouvez passer à l'étape suivante.
Installer ClickHouse sur Debian 11
Par défaut, le package ClickHouse n'est pas inclus dans le référentiel par défaut de Debian 11. Vous devrez donc ajouter le référentiel ClickHouse à votre système.
Tout d'abord, téléchargez et ajoutez la clé GPG à l'aide de la commande suivante :
apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
Vous obtiendrez le résultat suivant :
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
Ensuite, ajoutez le référentiel ClickHouse à l'APT à l'aide de la commande suivante :
echo "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/" | tee /etc/apt/sources.list.d/clickhouse.list
Ensuite, mettez à jour le référentiel et installez ClickHouse avec la commande suivante :
apt-get update -y
apt-get install clickhouse-server clickhouse-client -y
Lors de l'installation, il vous sera demandé de fournir un mot de passe pour l'utilisateur administrateur de ClickHouse, comme indiqué ci-dessous :
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) ...
Une fois l'installation terminée, vous pouvez passer à l'étape suivante.
Gérer le service ClickHouse
Vous pouvez maintenant démarrer le service ClickHouse et lui permettre de démarrer au redémarrage du système avec la commande suivante :
systemctl start clickhouse-server
systemctl enable clickhouse-server
Vous pouvez maintenant vérifier l'état du ClickHouse avec la commande suivante :
systemctl status clickhouse-server
Vous obtiendrez le résultat suivant :
? 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'.
Comment utiliser ClickHouse
Dans cette section, nous allons vous montrer comment vous connecter à ClickHouse, créer une base de données et une table.
Tout d'abord, connectez-vous au ClickHouse à l'aide de la commande suivante :
clickhouse-client --password
Il vous sera demandé de fournir le mot de passe par défaut comme indiqué ci-dessous :
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 :)
Créez maintenant une base de données nommée testdb à l'aide de la commande suivante :
debian11 :) CREATE DATABASE testdb;
Vous obtiendrez le résultat suivant :
CREATE DATABASE testdb Query id: a48b3031-a363-4357-b4f9-ffd3edd73b0e Ok. 0 rows in set. Elapsed: 0.005 sec.
Ensuite, modifiez la base de données en testdb à l'aide de la commande suivante :
debian11 :) USE testdb;
Vous obtiendrez le résultat suivant :
USE testdb Query id: 827e0d94-c3eb-46ec-ba04-97386a58e531 Ok. 0 rows in set. Elapsed: 0.001 sec.
Créez ensuite une table nommée table1 à l'aide de la commande suivante :
debian11 :) CREATE TABLE table1 (? id UInt64,? name String,? url String,? created DateTime?) ENGINE = MergeTree()?PRIMARY KEY id?ORDER BY id;
Vous obtiendrez le résultat suivant :
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.
Ensuite, insérez une valeur dans le tableau à l'aide de la commande suivante :
debian11 :) INSERT INTO table1 VALUES (1, 'jay', 'https://www.howtoforge.com', '2021-12-31 00:01:01');
Vous obtiendrez le résultat suivant :
INSERT INTO table1 FORMAT Values Query id: be1c57cd-5759-47cd-8649-ce82cd0c1f7d Ok. 1 rows in set. Elapsed: 0.005 sec.
Ensuite, ajoutez une nouvelle colonne à l'aide de la commande suivante :
debian11 :) ALTER TABLE table1 ADD COLUMN location String;
Vous obtiendrez le résultat suivant :
ALTER TABLE table1 ADD COLUMN `location` String Query id: 106fa166-afda-4598-a32c-b50da237bfe5 Ok. 0 rows in set. Elapsed: 0.007 sec.
Si vous souhaitez récupérer les données de la table, exécutez la commande suivante :
debian11 :) SELECT url, name FROM table1 WHERE url = 'https://www.howtoforge.com' LIMIT 1;
Vous obtiendrez le résultat suivant :
SELECT url, name FROM table1 WHERE url = 'https://www.howtoforge.com' LIMIT 1 Query id: 8ee433ec-0eb1-4409-b9a8-7e5794b872ce ??url?????????????????????name?? ? https://www.howtoforge.com ? jay ? ???????????????????????????????? 1 rows in set. Elapsed: 0.007 sec.
Pour supprimer une colonne, exécutez la commande suivante :
debian11 :) ALTER TABLE table1 DROP COLUMN location;
Pour supprimer une table, exécutez la commande suivante :
debian11 :) DROP TABLE table1;
Pour supprimer une base de données, exécutez la commande suivante :
debian11 :) DROP DATABASE testdb;
Pour quitter le shell ClickHouse, exécutez la commande suivante :
debian11 :) exit;
Activer l'interface utilisateur Web ClickHouse
ClickHouse fournit également une interface Web pour gérer la base de données. Mais, il est désactivé par défaut. Vous pouvez l'activer en éditant le fichier de configuration de ClickHouse :
nano /etc/clickhouse-server/config.xml
Décommentez et modifiez les lignes suivantes :
<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>
Enregistrez et fermez le fichier puis redémarrez le service ClickHouse pour appliquer les modifications de configuration :
systemctl restart clickhouse-server
Accéder à l'interface utilisateur Web de ClickHouse
Par défaut, l'interface utilisateur Web ClickHouse écoute sur le port 8123 . Vous pouvez le vérifier à l'aide de la commande suivante :
ss -antpl | grep 8123
Vous devriez voir le résultat suivant :
LISTEN 0 4096 0.0.0.0:8123 0.0.0.0:* users:(("clickhouse-serv",pid=18580,fd=158))
Maintenant, ouvrez votre navigateur Web et accédez à l'interface utilisateur Web ClickHouse en utilisant l'URL http://your-server-ip:8123 . Vous devriez voir l'écran suivant :
Indiquez votre nom d'utilisateur et votre mot de passe par défaut et cliquez sur Connexion bouton. Une fois connecté, vous devriez voir l'écran suivant :
Conclusion
Dans le guide ci-dessus, nous avons expliqué comment installer le système de base de données ClickHouse sur Debian 11. Nous avons également expliqué comment créer et gérer des bases de données et activer l'interface Web ClickHouse. J'espère que cela vous aidera à installer ClickHouse dans l'environnement de production. N'hésitez pas à me demander si vous avez des questions.