ClickHouse¶
In dit artikel
Informatie
ClickHouse is een high-performance kolomgebaseerd databasebeheersysteem (DBMS) ontworpen voor het uitvoeren van analytische queries van OLAP-klasse. Het DBMS is gericht op het analyseren van grote hoeveelheden gegevens met een lage latentie en wordt op grote schaal gebruikt voor taken op het gebied van analytics, monitoring, logging en telemetrie-verwerking.
ClickHouse. Kernfuncties¶
- Kolomgebaseerde opslag: gegevens worden per kolom in plaats van per rij opgeslagen, wat de uitvoering van analytische queries aanzienlijk versnelt en de hoeveelheid verwerkte gegevens vermindert.
- Hoge prestaties: geoptimaliseerd voor het verwerken van enorme datasets en in staat om queries uit te voeren op miljarden rijen dankzij vectorisatie 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 de creatie 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 |
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¶
Nadat de bestelling is betaald, wordt er een melding naar het e-mailadres gestuurd dat is opgegeven tijdens de registratie, dat de server klaar is voor gebruik. Deze melding bevat het IP-adres van de VPS, evenals de login en het wachtwoord voor de verbinding. Klanten van ons bedrijf beheren de hardware in het server- en API-beheerderspaneel - Invapi.
Inloggegevens:
- Server IP-adres: verstrekt in de e-mail en in het beheerderspaneel;
- Login:
default; - Wachtwoord: komt overeen met het wachtwoord van het
root-account en wordt naar het e-mailadres verzonden.
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 lijst met databases naar ClickHouse en selecteer deze

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

Kritiek 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 de driver is gedownload:

- 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 boomstructuur van de verbinding uit om databases, tabellen en andere objecten te bekijken.

Veelvoorkomende problemen:
| Error | Oorzaak | Oplossing |
|---|---|---|
transport error: 400 | Poort 9000 gebruikt in plaats van 8123 | Wijzigen naar poort 8123 |
Connection refused | Verkeerd 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;
Tijdreeksen:
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:
Status van de service:
Logs bekijken:
Opmerking
Als u niet als root werkt, voeg dan sudo toe voor 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 de ClickHouse-configuratie en optimalisatie is beschikbaar in de officiële documentatie van de ontwikkelaar.
Een server met ClickHouse bestellen¶
Om deze software te installeren met behulp van de API, volgt u deze instructies.