ClickHouse¶
In dit artikel
Informatie
ClickHouse is een high-performance kolomgebaseerd databeheersysteem (DBMS) ontworpen voor het uitvoeren van analytische queries van OLAP-klasse. Het DBMS is gericht op het analyseren van grote hoeveelheden gegevens met lage latentie en wordt veelvuldig gebruikt bij taken voor analytics, monitoring, logging en telemetrieverwerking.
ClickHouse. Kernfuncties¶
- Kolomgebaseerde opslag: gegevens worden per kolom in plaats van per rij opgeslagen, wat de uitvoering van analytische queries aanzienlijk versnelt en het volume aan verwerkte gegevens vermindert.
- Hoge prestaties: geoptimaliseerd voor het verwerken van enorme datasets en in staat om queries uit te voeren op miljarden rijen dankzij vectorized processing en efficiënt CPU-gebruik.
- Gegevenscompressie: maakt gebruik van gespecialiseerde compressie-algoritmen die de hoeveelheid opgeslagen gegevens drastisch kunnen verminderen (vaak vele malen kleiner dan bij rijgebaseerde DBMS), vooral bij analytische workloads.
- SQL-compatibiliteit: ondersteunt uitgebreide SQL-syntax met extra analytische functies, wat de migratie van bestaande applicaties vereenvoudigt.
- Gedistribueerde verwerking: maakt het creëren van clusters mogelijk voor horizontale schaalbaarheid en gegevensverwerking over meerdere servers.
- Gegevensreplicatie: ingebouwde ondersteuning voor replicatie zorgt voor fouttolerantie en een hoge beschikbaarheid van gegevens.
- Ondersteuning voor meerdere gegevensformaten: kan gegevens importeren en exporteren in CSV, JSON, Parquet, Avro en andere formaten.
- Materialized views: aggregeert automatisch gegevens op de achtergrond om terugkerende queries te versnellen.
- Integratie met externe bronnen: ondersteunt direct lezen van gegevens uit MySQL, PostgreSQL, MongoDB, Kafka, S3 en andere systemen.
Implementatiefuncties¶
| ID | Softwarenaam | Compatibel OS | VM | BM | VGPU | GPU | Min CPU (Kernen) | Min RAM (GB) | Min HDD/SSD (GB) | Aangepast Domein | Actief |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 492 | ClickHouse | Ubuntu 24.04, Ubuntu 22.04 | + | + | + | + | 4 | 8 | 120 | Nee | BESTELLEN |
Informatie
Voor informatie over de implementatiefuncties van deze software, zie deze link
Opmerking
Poorten 8443 en 9100 zijn standaard uitgeschakeld en vereisen aanvullende configuratie in /etc/clickhouse-server/config.xml.
Opmerking
Tenzij anders aangegeven, installeren we de nieuwste releaseversie van de software vanaf de officiële website van de ontwikkelaar.
Aan de slag na het implementeren van ClickHouse¶
Er wordt een melding gestuurd naar het e-mailadres dat tijdens de registratie is opgegeven zodra de server klaar is voor gebruik nadat er voor de bestelling is betaald. Deze bevat het IP-adres van de VPS, even wel de login en het wachtwoord voor de verbinding. Klanten van ons bedrijf beheren de hardware in het Invapi control panel.
Autorisatiedetails:
- Server IP address: verstrekt in de e-mail en in het control panel;
- Login:
default; - Password: komt overeen met het wachtwoord van het
rootaccount en wordt naar het e-mailadres gestuurd.
Let op
Gebruik voor GUI-clients (DBeaver, DataGrip en anderen) port 8123 (HTTP interface). Poort 9000 is uitsluitend gereserveerd voor de native clickhouse-client.
Verbinding maken met ClickHouse¶
Verbindingsmethoden
Dit gedeelte beschrijft de meest gebruikelijke manieren om verbinding te maken met ClickHouse via clickhouse-client (command-line client) en DBeaver (grafische interface). ClickHouse ondersteunt ook verbindingen via andere clients: DataGrip, Tableau, MySQL Workbench (via poort 9004), pgAdmin (via poort 9005), evenals programmeerbibliotheken voor Python, Go, Java en andere talen.
Verbinding maken via clickhouse-client¶
ClickHouse bevat een native command-line client voor database-operaties.
1. Verbinding maken vanaf de server (lokaal):
2. Verbinding maken vanaf een externe machine:
3. Een eenvoudige query uitvoeren:
4. De lijst met databases bekijken:
Verbinding maken via DBeaver¶
DBeaver is een universele GUI-client voor het werken met verschillende databases, waaronder ClickHouse.
1. DBeaver installeren
Download en installeer DBeaver vanaf de officiële website.
2. Een nieuwe verbinding maken
- Start DBeaver
- Selecteer Database >> New Database Connection (of druk op
Ctrl+Shift+N)

- Zoek in de database-lijst en selecteer ClickHouse

- Klik op
Next
3. Verbindingsparameters configureren
Geef in het instellingenvenster de volgende parameters op:
Host: <IP-address of your server>
Port: 8123
Database/Schema: (leeg laten of default opgeven)
Username: default
Password: <root_password>

Cruciaal belangrijk
Gebruik voor DBeaver-verbindingen port 8123.
4. De JDBC-driver downloaden
Wanneer u voor het eerst verbinding maakt, vraagt DBeaver u om de JDBC-driver voor ClickHouse te downloaden:
- Klik op
Downloadin het pop-upvenster:

- Wacht tot het downloaden van de driver is voltooid:

- Klik op
OK
5. De verbinding testen
- Klik op
Test Connection; - Als alles correct is geconfigureerd, verschijnt er een melding: Connected (XXX ms):

- De melding bevat:
- Server: ClickHouse X.X.X.XXX
- Driver: ClickHouse JDBC Driver X.X.X
6. Installatie afronden
- Klik op
Finish; - De verbinding verschijnt in de Database Navigator;
- Vouw de verbindingsboom uit om databases, tabellen en andere objecten te bekijken.

Veelvoorkomende problemen:
| Error | Cause | Fix |
|---|---|---|
transport error: 400 | Poort 9000 gebruikt in plaats van 8123 | Wijzigen naar poort 8123 |
Connection refused | Verkeerde IP of firewall blokkeert poort | Controleer het IP-adres en de firewall-regels |
Authentication failed | Verkeerde login of wachtwoord | Controleer de inloggegevens |
Hostname is not specified | SSH-tunnel per ongeluk ingeschakeld zonder configuratie | Sluit het SSH-tabblad in de verbindingsinstellingen |
Kernoperaties in ClickHouse¶
Een database maken¶
Een tabel maken¶
CREATE TABLE my_database.events
(
event_date Date,
event_time DateTime,
user_id UInt32,
event_type String,
value Float64
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY (event_date, user_id);
Gegevens invoegen¶
INSERT INTO my_database.events VALUES
('2024-12-25', '2024-12-25 10:00:00', 1, 'click', 1.5),
('2024-12-25', '2024-12-25 10:05:00', 2, 'view', 2.3),
('2024-12-25', '2024-12-25 10:10:00', 1, 'purchase', 99.99);
Gegevens selecteren¶
Eenvoudige query:
Gegevens aggregeren:
SELECT
event_type,
count() as events_count,
avg(value) as avg_value
FROM my_database.events
WHERE event_date = '2024-12-25'
GROUP BY event_type;
Tijdreeks:
SELECT
toStartOfHour(event_time) as hour,
count() as events_per_hour
FROM my_database.events
WHERE event_date >= '2024-12-01'
GROUP BY hour
ORDER BY hour;
Gegevens importeren uit CSV¶
Een tabel maken:
CREATE TABLE my_database.logs
(
timestamp DateTime,
level String,
message String
)
ENGINE = MergeTree()
ORDER BY timestamp;
Gegevens importeren:
Gebruikers en privileges beheren¶
Een gebruiker maken:
Rechten verlenen:
Gebruikers bekijken:
Privileges bekijken:
De service beheren¶
De service starten:
De service stoppen:
De service herstarten:
Service status:
Logs bekijken:
Opmerking
Als u niet als root werkt, voeg dan sudo toe aan de commando's: sudo clickhouse start
Actieve poorten controleren¶
Om te zien op welke poorten ClickHouse luistert:
Of gedetailleerder:
Om geconfigureerde poorten in de configuratie te controleren:
Om een specifieke poort te controleren:
Verwachte output van de poortcontrole:
LISTEN *:8123 clickhouse-serv (HTTP)
LISTEN *:9000 clickhouse-serv (Native TCP)
LISTEN *:9004 clickhouse-serv (MySQL)
LISTEN *:9005 clickhouse-serv (PostgreSQL)
LISTEN *:9009 clickhouse-serv (Interserver)
Opmerking
Gedetailleerde informatie over ClickHouse-configuratie en optimalisatie is beschikbaar in de officiële documentatie van de ontwikkelaar.