Clickhouse : installation

Soumis par jpp le dim 04/09/2022 - 17:01

Il existe un dépôt pour Debian 11 géré directement par Clickhouse, l'installation sera donc simple.
Afin de ne pas risquer de "polluer" une machine existante j'ai décidé d'installer une machine virtuelle KVM munie d'un "gros" disque car j'avais dans l'idée d'y charger une grosse table, (justement mes archives de Ntopng) qui fait plus de 487 millions de rangs (6 ans d'archives).

La machine comportait au démarrage :
CPU       : 4 VCPU
Disque   : #400Go
RAM      = 6 Go

Ajouter la clef GPG de clickhouse (en root) :
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
Ajouter un fichier "clickhouse.list" dans /etc/apt/sources.list.d contenant :
deb https://packages.clickhouse.com/deb stable main

Il suffira alors d'un "apt update" et tout sera prêt pour lancer l'installation :

apt install --force-overwrite clickhouse-client clickhouse clickhouse-common clickhouse-common-static clickhouse-server clickhouse-tools

Note : J'ai été obligé d'utiliser --forcce-overwrite à cause du paquet clickhouse-tools.

L'installation s'est bien passée et tout a fonctionné rapidement, le fichier "service" pour systemd est bien sûr disponible.
Le serveur dispose de plusieurs ports dédiés à :

  • Port natif
  • Port Mysql like
  • Port Postgresql like

Il est ainsi possible d'utiliser une syntaxe connue telle que Mysql/MariaDB ou Postgresql.
Je me suis concentré sur la syntaxe Mysql que je connais mieux que celle de Postgres.

J'ai donc pu créer rapidement un utilisateur dédié, les bases de données et les tables dont j'avais besoin.

Mon seul problème a été la taille de RAM allouée à cette machine, les 6Go se sont vite avérés insuffisants, le chargement des données ne dépassait pas 100 millions de rangs ...
Après quelques tâtonnements j'ai vu qu'il ne fallait pas être avare avec la RAM pour obtenir un fonctionnement sans plantage.
Lors des chargements de données des "Segmentation fault" et lors de l'exécution d'ordres SQL des plantages pour "(MEMORY_LIMIT_EXCEEDED)" j'ai donc, par paliers, augmenté la RAM jusqu'à un fonctionnement impeccable obtenu dès 24Go que j'ai un peu poussé à 28Go. Cela fait déjà une jolie VM.