So installierst du das ClickHouse OLAP-Datenbanksystem unter Debian 11

ClickHouse ist ein kostenloses, quelloffenes und spaltenorientiertes Datenbankmanagementsystem. Es wird für die Online-Analyse verwendet und ermöglicht es dir, mithilfe von SQL-Abfragen in Echtzeit analytische Berichte zu erstellen. Es speichert Datensätze in nach Spalten gruppierten Blöcken statt in Zeilen. Dadurch wird beim Ausfüllen von Abfragen weniger Zeit mit dem Lesen von Daten verbracht. Außerdem können spaltenorientierte Datenbanken bei bestimmten Arbeitsbelastungen viel schneller rechnen und Ergebnisse liefern als traditionelle zeilenbasierte Systeme.

In diesem Beitrag zeigen wir dir, wie du die ClickHoust-Datenbank auf Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein Root-Passwort ist auf deinem Server eingerichtet.

Erste Schritte

Bevor du beginnst, musst du deine Systempakete auf die aktuelle Version aktualisieren. Du kannst sie aktualisieren, indem du den folgenden Befehl ausführst:

apt-get update -y

Sobald alle Pakete aktualisiert sind, installierst du die anderen benötigten Pakete mit dem folgenden Befehl:

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

Sobald alle erforderlichen Pakete installiert sind, kannst du mit dem nächsten Schritt fortfahren.

ClickHouse auf Debian 11 installieren

Standardmäßig ist das ClickHouse-Paket nicht im Standard-Repository von Debian 11 enthalten. Daher musst du das ClickHouse-Repository zu deinem System hinzufügen.

Lade zunächst den GPG-Schlüssel herunter und füge ihn mit dem folgenden Befehl hinzu:

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

Du erhältst dann die folgende Ausgabe:

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

Als Nächstes fügst du das ClickHouse-Repository mit folgendem Befehl zur APT hinzu:

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

Als Nächstes aktualisierst du das Repository und installierst ClickHouse mit dem folgenden Befehl:

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

Während der Installation wirst du aufgefordert, ein Passwort für den ClickHouse-Admin-Benutzer anzugeben (siehe unten):

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) ...

Sobald die Installation abgeschlossen ist, kannst du mit dem nächsten Schritt fortfahren.

ClickHouse-Dienst verwalten

Mit dem folgenden Befehl kannst du den ClickHouse-Dienst starten und aktivieren, dass er beim Neustart des Systems gestartet wird:

systemctl start clickhouse-server 
systemctl enable clickhouse-server

Du kannst nun den Status von ClickHouse mit dem folgenden Befehl überprüfen:

systemctl status clickhouse-server

Du erhältst die folgende Ausgabe:

? 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'.

Wie du ClickHouse verwendest

In diesem Abschnitt zeigen wir dir, wie du dich mit ClickHouse verbindest, eine Datenbank und eine Tabelle erstellst.

Verbinde dich zunächst mit dem ClickHouse mit folgendem Befehl:

clickhouse-client --password

Du wirst aufgefordert, das Standardpasswort einzugeben (siehe unten):

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 :) 

Erstelle nun eine Datenbank namens testdb mit folgendem Befehl:

debian11 :) CREATE DATABASE testdb;

Du erhältst die folgende Ausgabe:

CREATE DATABASE testdb

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

Ok.

0 rows in set. Elapsed: 0.005 sec. 

Als Nächstes änderst du die Datenbank mit folgendem Befehl in testdb:

debian11 :) USE testdb;

Du erhältst die folgende Ausgabe:

USE testdb

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

Ok.

0 rows in set. Elapsed: 0.001 sec. 

Als Nächstes erstellst du mit dem folgenden Befehl eine Tabelle namens table1:

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

Du erhältst die folgende Ausgabe:

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. 

Füge als Nächstes mit dem folgenden Befehl einen Wert in die Tabelle ein:

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

Du erhältst die folgende Ausgabe:

INSERT INTO table1 FORMAT Values

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

Ok.

1 rows in set. Elapsed: 0.005 sec. 

Als Nächstes fügst du mit dem folgenden Befehl eine neue Spalte hinzu:

debian11 :) ALTER TABLE table1 ADD COLUMN location String;

Du erhältst die folgende Ausgabe:

ALTER TABLE table1
    ADD COLUMN `location` String

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

Ok.

0 rows in set. Elapsed: 0.007 sec. 

Wenn du die Daten aus der Tabelle abrufen willst, führe folgenden Befehl aus:

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

Du erhältst die folgende Ausgabe:

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. 

Um eine Spalte zu entfernen, führe den folgenden Befehl aus:

debian11 :) ALTER TABLE table1 DROP COLUMN location;

Um eine Tabelle zu entfernen, führe den folgenden Befehl aus:

debian11 :) DROP TABLE table1;

Um eine Datenbank zu entfernen, führe den folgenden Befehl aus:

debian11 :) DROP DATABASE testdb;

Um die ClickHouse-Shell zu verlassen, führe den folgenden Befehl aus:

debian11 :) exit;

ClickHouse Web UI aktivieren

ClickHouse bietet auch eine webbasierte Schnittstelle zur Verwaltung der Datenbank. Sie ist jedoch standardmäßig deaktiviert. Du kannst sie aktivieren, indem du die ClickHouse-Konfigurationsdatei bearbeitest:

nano /etc/clickhouse-server/config.xml

Hebe die Kommentare auf und ändere die folgenden Zeilen:

 <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>

Speichere und schließe die Datei und starte den ClickHouse-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart clickhouse-server

Zugriff auf ClickHouse Web UI

Standardmäßig lauscht ClickHouse Web UI auf Port 8123. Du kannst dies mit dem folgenden Befehl überprüfen:

ss -antpl | grep 8123

Du solltest die folgende Ausgabe sehen:

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

Öffne nun deinen Webbrowser und rufe die ClickHouse Web UI über die URL http://your-server-ip:8123 auf. Du solltest den folgenden Bildschirm sehen:

ClickHouse Web UI

Gib deinen Standard-Benutzernamen und dein Passwort ein und klicke auf die Schaltfläche Anmelden. Sobald du eingeloggt bist, solltest du den folgenden Bildschirm sehen:

Tabix

Fazit

In der obigen Anleitung haben wir erklärt, wie du das ClickHouse-Datenbanksystem unter Debian 11 installierst. Außerdem haben wir erklärt, wie du Datenbanken erstellst und verwaltest und wie du die ClickHouse-Weboberfläche aktivierst. Ich hoffe, dies hilft dir bei der Installation von ClickHouse in der Produktionsumgebung. Wenn du noch Fragen hast, kannst du mich gerne fragen.

Das könnte dich auch interessieren …