sql >> Database teknologi >  >> RDS >> Database

Sådan installeres og konfigureres ClickHouse på Ubuntu 20.04

Hvad er ClickHouse?

ClickHouse er et open source kolonneorienteret DBMS (eller databasestyringssystem), der primært bruges til OLAP (eller online analytisk behandling af forespørgsler). Den er i stand til lynhurtig generering af analytiske data i realtid og rapportering ved hjælp af SQL-forespørgsler. Den er fejltolerant, skalerbar, yderst pålidelig og indeholder et funktionsrigt værktøjssæt.

I en almindelig database lagres data i tabeller, kolonner og rækker. I en tabel gemmes de relaterede værdier fysisk side om side i én række, hvilket er afgørende for, hvordan det fungerer. Sådan fungerer de fleste strengtypedatabaser.

Et par eksempler på denne form for database er:

  • MySQL
  • Postgres
  • SQLite

Data gemmes som vist nedenfor i en kolonneformet database:

Det ligner, men forskellene er som følger:Værdier fra forskellige kolonner gemmes separat, mens data fra én kolonne gemmes sammen. Eksempler på kolonneorienterede tabeller:

  • Vertica
  • InfiniDB
  • Google Dremel

Sådanne DBMS'er lagrer poster i blokke, grupperet efter kolonner i stedet for rækker. Ved ikke at indlæse data for kolonnerne bruger de mindre tid på at læse dataene, når de kører forespørgsler, hvilket gør det muligt for DBMS'er at beregne data og returnere resultater meget hurtigere end databaser grupperet i blokke. Typisk anvendes kolonneorienterede databaser bedst i OLAP-scenarier, hvor de normalt er 100 gange hurtigere til at behandle de fleste forespørgsler sammenlignet med strengtypedatabaser.

Som vi kan se fra ovenstående illustrationer, giver OLAP os mulighed for at organisere store mængder data og udføre komplekse forespørgsler i flere størrelsesordener hurtigere end en typisk database. Derfor er den yderst nyttig til at arbejde med store mængder input, når der kræves analyse af data og/eller forretningsanalyse.

SQL-brug

ClickHouse bruger en dialekt af SQL, som ligner standarden Structured Query Language, men den indeholder yderligere udvidelser:forskellige arrays, funktioner af højere orden, indlejrede strukturer, funktioner til at arbejde med URL'er og evnen til at arbejde med en ekstern ordbog, osv.

Mens vi får hastighed og stor databehandling, mister vi også andre aspekter, herunder følgende muligheder:

  • Mangel på transaktioner.
  • Stærke datatyper med behov for eksplicit casting.
  • Skal gemme mellemliggende data i RAM til nogle operationer.
  • Mangel på en fuldgyldig forespørgselsoptimering.
  • Punktlæsning af data i en database.

På trods af dette demonstrerer ClickHouse høj ydeevne og vinder over sine mange konkurrenter. ClickHouse blev udviklet til at løse problemer inden for webanalyse for Yandex.Metrica, det tredje mest populære webanalysesystem i verden. Det er også i brug af Cloudflare til at behandle hjemmesidestatistik for sine brugere.

Forudsætninger

For at installere har vi brug for:

  • En server med 2 kerner, der bruger mindst 2 GB RAM
  • Et Ubuntu 20.04 LTS OS
  • Adgang til root-brugerkontoen (som alle handlinger udført som root).
Bemærk:Hvis kommandoer køres som en almindelig bruger, skal sudo-kommandoen inkluderes i alle kommandoer.

ClickHouse-installation på Ubuntu 20.04

Før vi installerer, opdaterer vi systemet og pakkerne på serveren.

root@host:~# apt update && apt -y upgrade
Hit:1 http://by.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://by.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://by.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]      
Hit:5 https://download.docker.com/linux/ubuntu focal InRelease                 
Hit:6 https://debian.neo4j.com stable InRelease                                
Fetched 109 kB in 0s (231 kB/s)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@host:~# 

Yandex vedligeholder et lager med den seneste version af ClickHouse, så vi skal tilføje det. Tilføj også en GPG-nøgle for at tjekke lageret og installere ClickHouse og fremtidige opdateringer sikkert.

root@host:~#  apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
Executing: /tmp/apt-key-gpghome.5KK4WZQb0R/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
root@host:~# 

Tilføj lageret til listen over APK-lagre.

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

Dernæst opdaterer vi vores serverpakker.

root@host:~#  apt update
Hit:1 http://by.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://by.archive.ubuntu.com/ubuntu focal-updates InRelease              
Hit:3 http://by.archive.ubuntu.com/ubuntu focal-backports InRelease            
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]      
Ign:5 http://repo.yandex.ru/clickhouse/deb/stable main/ InRelease              
Get:6 http://repo.yandex.ru/clickhouse/deb/stable main/ Release [749 B]        
Get:7 http://repo.yandex.ru/clickhouse/deb/stable main/ Release.gpg [836 B]    
Hit:8 https://download.docker.com/linux/ubuntu focal InRelease                 
Get:9 http://repo.yandex.ru/clickhouse/deb/stable main/ Packages [152 kB]
Hit:10 https://debian.neo4j.com stable InRelease       
Fetched 263 kB in 0s (536 kB/s)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.
root@host:~#

Endelig kan vi installere ClickHouse. Indtast en adgangskode, når du bliver bedt om det.

root@host:~#  apt install -y clickhouse-server clickhouse-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  clickhouse-common-static
Suggested packages:
  clickhouse-common-static-dbg
The following NEW packages will be installed:
  clickhouse-client clickhouse-common-static clickhouse-server
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 119 MB of archives.
After this operation, 401 MB of additional disk space will be used.
...                                           
Preconfiguring packages ...
Selecting previously unselected package clickhouse-common-static.
(Reading database ... 164995 files and directories currently installed.)
Preparing to unpack .../clickhouse-common-static_20.12.5.14_amd64.deb ...
Unpacking clickhouse-common-static (20.12.5.14) ...
Selecting previously unselected package clickhouse-client.
Preparing to unpack .../clickhouse-client_20.12.5.14_all.deb ...
Unpacking clickhouse-client (20.12.5.14) ...
Selecting previously unselected package clickhouse-server.
Preparing to unpack .../clickhouse-server_20.12.5.14_all.deb ...
Unpacking clickhouse-server (20.12.5.14) ...
Setting up clickhouse-common-static (20.12.5.14) ...
Setting up clickhouse-server (20.12.5.14) ...
ClickHouse init script has migrated to systemd. Please manually stop old server 
and restart the service:  killall clickhouse-server && sleep 5 &&  servi
ce clickhouse-server restart
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.se
rvice → /etc/systemd/system/clickhouse-server.service.
Copying ClickHouse binary to /usr/bin/clickhouse.new
/usr/bin/clickhouse already exists, will rename existing binary to /usr/bin/clic
khouse.old and put the new binary in place
Renaming /usr/bin/clickhouse.new to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-server already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-server to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-client already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-client to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-local already exists but it points to /clickhouse. W
ill replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-local to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-benchmark already exists but it points to /clickhous
e. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-benchmark to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-copier already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-copier to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-obfuscator already exists but it points to /clickhou
se. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-obfuscator to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-git-import to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-compressor already exists but it points to /clickhou
se. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-compressor to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-format already exists but it points to /clickhouse. 
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-format to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-extract-from-config already exists but it points to 
/clickhouse. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-extract-from-config to /usr/bin/clickhouse.
Creating clickhouse group if it does not exist.
 groupadd -r clickhouse
Creating clickhouse user if it does not exist.
 useradd -r --shell /bin/false --home-dir /nonexistent -g clickhouse clickhouse
Will set ulimits for clickhouse user in /etc/security/limits.d/clickhouse.conf.
Creating config directory /etc/clickhouse-server/config.d that is used for tweak
s of main server configuration.
Creating config directory /etc/clickhouse-server/users.d that is used for tweaks
 of users configuration.
Config file /etc/clickhouse-server/config.xml already exists, will keep it and e
xtract path info from it.
/etc/clickhouse-server/config.xml has /var/lib/clickhouse/ as data path.
/etc/clickhouse-server/config.xml has /var/log/clickhouse-server/ as log path.
Users config file /etc/clickhouse-server/users.xml already exists, will keep it 
and extract users info from it.
 chown --recursive clickhouse:clickhouse '/etc/clickhouse-server'
Creating log directory /var/log/clickhouse-server/.
Creating data directory /var/lib/clickhouse/.
Creating pid directory /var/run/clickhouse-server.
 chown --recursive clickhouse:clickhouse '/var/log/clickhouse-server/'
 chown --recursive clickhouse:clickhouse '/var/run/clickhouse-server'
 chown clickhouse:clickhouse '/var/lib/clickhouse/'
Password for default user is already specified. To remind or reset, see /etc/cli
ckhouse-server/users.xml and /etc/clickhouse-server/users.d.
Setting capabilities for clickhouse binary. This is optional.
 command -v setcap >/dev/null && echo > /tmp/test_setcap.sh && chmod a+x /tmp/te
st_setcap.sh && /tmp/test_setcap.sh && setcap 'cap_net_admin,cap_ipc_lock,cap_sy
s_nice+ep' /tmp/test_setcap.sh && /tmp/test_setcap.sh && rm /tmp/test_setcap.sh 
&& setcap 'cap_net_admin,cap_ipc_lock,cap_sys_nice+ep' /usr/bin/clickhouse || ec
ho "Cannot set 'net_admin' or 'ipc_lock' or 'sys_nice' capability for clickhouse
 binary. This is optional. Taskstats accounting will be disabled. To enable task
stats accounting you may add the required capability later manually."

ClickHouse has been successfully installed.

Start clickhouse-server with:
 clickhouse start

Start clickhouse-client with:
 clickhouse-client --password

Setting up clickhouse-client (20.12.5.14) ...
Processing triggers for systemd (245.4-4ubuntu3.3) ...
root@host:~# 

Start ClickHouse Service

Nu hvor vi har installeret ClickHouse, lad os køre det i baggrunden.

root@host:~#  service clickhouse-server start
root@host:~# 

Bekræft status

I dette trin tjekker vi blot for at sikre, at alt fungerer som forventet.

root@host:~#  service clickhouse-server status
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
     Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; ve>
     Active: active (running) since Wed 2020-12-30 22:08:26 +03; 25s ago
   Main PID: 5553 (clickhouse-serv)
      Tasks: 48 (limit: 9489)
     Memory: 45.8M
     CGroup: /system.slice/clickhouse-server.service
             └─5553 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/>

сне 30 22:08:26 host clickhouse-server[5553]: Include not found: clickhouse_com>
сне 30 22:08:26 host clickhouse-server[5553]: Logging trace to /var/log/clickho>
сне 30 22:08:26 host clickhouse-server[5553]: Logging errors to /var/log/clickh>
сне 30 22:08:26 host clickhouse-server[5553]: Processing configuration file '/e>
сне 30 22:08:26 host clickhouse-server[5553]: Include not found: networks
сне 30 22:08:26 host clickhouse-server[5553]: Saved preprocessed configuration >
сне 30 22:08:28 host clickhouse-server[5553]: Processing configuration file '/e>
сне 30 22:08:28 host clickhouse-server[5553]: Include not found: clickhouse_rem>
сне 30 22:08:28 host clickhouse-server[5553]: Include not found: clickhouse_com>
сне 30 22:08:28 host clickhouse-server[5553]: Saved preprocessed configuration >
lines 1-19/19 (END)

Linjerne nedenfor er dem, vi skal være meget opmærksomme på.

   Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; ve>
     Active: active (running) since Wed 2020-12-30 22:08:26 +03; 25s ago

Konfigurer firewall'en

Hvis du ikke bruger en firewall, skal du springe dette trin over. Hvis du planlægger at tilslutte eksternt og have en firewall aktiveret, så er dette trin nødvendigt. Åbn og rediger konfigurationsfilen, og fjern kommentarer til linjen nedenfor.

<!-- <listen_host>0.0.0.0</listen_host> →

Når redigeringen er fuldført, skal du gemme filen ved hjælp af Ctrl+S og Ctrl+X nøgler, og genstart derefter ClickHouse-tjenesten.

root@host:~#  service clickhouse-server restart
root@host:~# 

Åbne porte

Åbn derefter port 8123 i firewallen for at give adgang til din IP-adresse.

ufw allow from YOUR_IP_SERVER/32 to any port 8123

Åbn derefter port 9000 for clickhouse-klientens IP-adresse.

 root@host:~#  ufw allow from 192.168.13.1/32 to any port 8123
Rules updated
root@host:~# 
root@host:~#  ufw allow from 192.168.13.1/32 to any port 9000
Rules updated
root@host:~#  

Bekræft forbindelsen

For at kontrollere, at alt fungerer, når du fjerntilslutter, skal du bruge følgende forespørgsel.

clickhouse-client --host 192.168.13.1 --password
root@host:~# clickhouse-client --host 192.168.13.1 --password
Password for user (default):
Connecting to 192.168.13.1:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

host :)

Lær basiskommandoer og interaktioner

I ClickHouse kan vi oprette og slippe databaser ved hjælp af den ændrede SQL-syntaks. Lad os tage et kig på eksemplerne nedenfor. Lad os først oprette forbindelse til ClickHouse.

root@host:~# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

host :)  

Opret database

Når vi er i ClickHouse-kommandolinjen, opretter vi en database ved navn liquidweb ved hjælp af følgende syntaks.

host :) CREATE DATABASE liquidweb;

CREATE DATABASE liquidweb

Query id: 9169dbaa-402e-4d37-828f-5fde43d4a91d

Ok.

0 rows in set. Elapsed: 0.004 sec. 

host :) 

I ClickHouse er tabellen næsten den samme som i andre databaser med et sæt relaterede data i et struktureret format. Vi kan specificere kolonner og deres typer, tilføje rækker og udføre forskellige slags forespørgsler mod DB.

Opret tabel

Før vi opretter en tabel, er det vigtigt at kende og forstå, hvilke typer kolonner der er tilgængelige til brug. Følgende kolonnetyper er levedygtige:

  • UInt64 — Denne tabel bruges til at gemme heltal fra 0 til 18446744073709551615.
  • Float64 — Hver tabel, der bruger Float64, kan gemme flydende kommatal som 10.5, 18754.067 osv.
  • Streng — Her erstatter strengtabellen VARCHAR, BLOB, CLOB og andre typer fra forskellige DBMS'er
  • Dato — Denne tabel bruges til at gemme datoer i formatet ÅÅÅÅ-MM-DD.
  • DatoTid — Her bruges DateTime-tabellen til at gemme datoer og tidspunkter i det mere præcise ÅÅÅÅ-MM-DD TT:MM:SS-format

Datastrukturer

ClickHouse definerer strukturen af ​​de underliggende data ved at beskrive de nøjagtige data, evnen til at forespørge tabellen, dens tilstande for samtidig adgang til tabellen og understøttelse af indekser. ClickHouse har forskellige muligheder, der er egnede til forskellige brugsforhold.

MergeTree

Den mest udbredte mekanisme er bordmotoroperationen kaldet MergeTree . Denne funktion er designet til at indsætte store mængder data i en tabel. Det anbefales stærkt til produktionsdatabasebrug på grund af dets optimerede understøttelse af indsættelse af store mængder realtidsaktiver samt dets pålidelighed og forespørgselsunderstøttelse.

Vælg Database

Lad os gå videre til yderligere praksis. Lad os først vælge en database, hvori vi vil oprette en tabel.

host :) USE liquidweb;

USE liquidweb

Query id: aba15bcb-224b-426d-9f74-350a88346115

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Opret tabel

Dernæst opretter vi en tabel kaldet kolleger .

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

CREATE TABLE colleagues
(
    `id` UInt64,
    `name` String,
    `url` String,
    `created` DateTime
)
ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id

Query id: 08223a2f-d365-43cb-8627-d22674d1c47c

Ok.

0 rows in set. Elapsed: 0.004 sec. 

host :) 

Lad os gennemgå, hvilke værdier vi tilføjede.

  • id - Dette er den primære nøglekolonne. Hver linje skal have en unik identifikator.
  • navn - En kolonne med en strengværdi.
  • url - En kolonne med en strengværdi, der indeholder et link til profilen.
  • oprettet - Den dato, hvor medarbejderen dukkede op i systemet.

Efter at have defineret kolonnerne i tabellen, specificerer vi derefter MergeTree mekanisme til opbevaring af bordet. Dernæst udpeger vi kolonnerne og definerer derefter kolonnerne på tabelniveau.

  • PRIMÆR NØGLE - Angiver den primære nøglekolonne.
  • BEstil efter - De lagrede tabelværdier er sorteret efter id-kolonne.

Tilføj data

Nu kan vi arbejde med bordet. Lad os tilføje nogle data til kollegerne tabel.

host :) INSERT INTO colleagues VALUES (1, 'margaret', 'http://1.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: 42dbde52-6d7e-4849-ac5e-280590f3232d

Ok.

1 rows in set. Elapsed: 0.002 sec. 

host :) 

Lad os tilføje flere data.

host :) INSERT INTO colleagues VALUES (2, 'john', 'http://2.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: a9b34f78-2caa-4b41-bd4e-91bf8049a04b

Ok.

1 rows in set. Elapsed: 0.001 sec. 

host :)
host :) INSERT INTO colleagues VALUES (3, 'kingsman', 'http://3.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: df5133c1-b404-4569-8123-f0728c172c87

Ok.

1 rows in set. Elapsed: 0.003 sec. 

host :) 
 host :) INSERT INTO colleagues VALUES (4, 'tor', 'http://4.com', '2021-01-01 00:01:01');

INSERT INTO colleagues VALUES

Query id: 14f56b86-fae7-4af2-b506-18c351b92853

Ok.

1 rows in set. Elapsed: 0.001 sec. 

host :)  

Tilføj kolonne

Mens vi tilføjede nogle værdier, indså vi, at vi glemte at tilføje endnu en kolonne, så vi er nødt til at tilføje den nedenfor.

host :) ALTER TABLE colleagues ADD COLUMN location String;

ALTER TABLE colleagues
    ADD COLUMN `location` String


Query id: 002900f4-9fd9-4302-a10f-6aa5b818f9ae

Ok.

0 rows in set. Elapsed: 0.005 sec. 

host :)

Rediger data

Nu skal vi på en eller anden måde ændre de gamle data. I version 19.13 understøtter ClickHouse ikke opdatering og sletning af individuelle rækker på grund af implementeringen. Men ClickHouse understøtter masseopdateringer og sletninger og har også sin egen syntaks for disse operationer.

Nu opdaterer vi vores linjer.

host :) ALTER TABLE colleagues UPDATE url ='http://1.com' WHERE id < 15;

ALTER TABLE colleagues
    UPDATE url = 'http://1.com' WHERE id < 15


Query id: 6fc6620e-fd90-43aa-8d7f-8a34cfb73650

Ok.

0 rows in set. Elapsed: 0.004 sec. 

host :)

Efter Hvor , indstiller vi filterparametrene og kan også slette unødvendige parametre.

host :) ALTER TABLE colleagues  DELETE WHERE id < 2;

ALTER TABLE colleagues
    DELETE WHERE id < 2


Query id: 354e27fc-70c9-480b-bb1d-067591924c6e

Ok.

0 rows in set. Elapsed: 0.005 sec. 

host :) 

Fjern kolonne

Gør følgende for at fjerne kolonner fra en tabel.

host :) ALTER TABLE colleagues DROP COLUMN location;

ALTER TABLE colleagues
    DROP COLUMN location


Query id: da361478-0619-4c31-8422-f59ee14a57d7

Ok.

0 rows in set. Elapsed: 0.008 sec. 

host :) 

Datahentning via forespørgsler

Dernæst går vi videre til at demonstrere datahentning ved hjælp af forespørgsler. ClickHouse bruger SQL-syntaks her med dens tilføjelser. Lad os prøve at samle nogle grundlæggende oplysninger.

host :) SELECT url, name FROM colleagues WHERE url = 'http://1.com' LIMIT 1;

SELECT
    url,
    name
FROM colleagues WHERE url = 'http://1.com'
LIMIT 1

Query id: 8a5cbf9a-f187-440c-9a60-2d23029b4bd1

┌─url──────────┬─name─┐
│ http://1.com │ john │
└──────────────┴──────┘

1 rows in set. Elapsed: 0.003 sec. 

host :) 
  • VÆLG - Vælg flere parametre.
  • FRA - Bestem, hvilken tabel vi vil modtage værdier.
  • HVOR - Indstil parametre og filtre for hvilken værdi og hvor meget.

Vi kan også bruge yderligere søgeparametre, såsom:

  • tæller - Returnerer antallet af rækker, der matcher betingelserne.
  • sum - Returnerer summen af ​​de valgte værdier.
  • gennemsnit - Returnerer gennemsnittet af de valgte elementer.
  • unikt - Returner det omtrentlige antal matchede enkeltrækker.
  • topK - Returnerer en matrix af de mest hyppige værdier i en specifik kolonne ved hjælp af en algoritme.

Drop tabeller og databaser

Dernæst går vi videre til at droppe tabeller og databaser. Lad os først slette en tabel.

host :) DROP TABLE colleagues;

DROP TABLE colleagues

Query id: 21048fe4-d379-48ac-b9a7-71f0b3fe93e1

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Slet nu databasen.

host :) DROP DATABASE liquidweb;

DROP DATABASE liquidweb

Query id: 4ad9a51a-f89d-4be5-be9c-92b8cb38614b

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Indtast standardværdien for 'exit' for at afslutte databasen.

host :) exit
Bye.
root@host:~# 

Opret en bruger

Nu hvor vi har dækket alle de grundlæggende funktioner, vil vi oprette flere databasebrugere. ClickHouse-konfigurationsfilen kan findes i følgende sti /etc/clickhouse-client/config.xml. Gå til denne fil, åbn den med vim eller nano, og angiv værdierne i følgende rækkefølge.

<config>    <user>username</user>    <password>password</password>    <secure>False</secure></config>

Vi vil bruge nano-editoren til at redigere filen.

root@host:~#  nano /etc/clickhouse-client/config.xml
root@host:~# 

Indtast de nødvendige oplysninger, og gem derefter ændringerne med Ctrl+S og Ctrl+X nøgler

Opret forbindelse til ClickHouse

Til sidst, for at oprette forbindelse til ClickHouse, skal du indtaste følgende kommando i terminalen.

root@host:~# clickhouse-client -u margaret --password
ClickHouse client version 20.12.5.14 (official build).
Password for user (margaret): 
Connecting to localhost:9440 as user margaret.
Connected to ClickHouse server version 20.12.5 revision 54442.

host :) 

Konklusion

I denne tutorial opdagede vi mange aspekter af ClickHouse. Vi opdagede, hvordan det virker, hvornår det kan anvendes, og under hvilke omstændigheder det er nyttigt. Vi identificerede, hvordan man tilføjer en nøgle, repository, og derefter installerer ClickHouse-softwaren. Ligeledes har vi så opsat og konfigureret firewallen til at tillade adgang. Desuden lavede vi databaser og tabeller, tilføjede kolonner og data, og derefter opdaterede og slettede vi dem. Til sidst demonstrerede vi, hvordan man opretter brugere i konfigurationsfilen.

Vi er stolte af at være de mest hjælpsomme mennesker inden for Hosting™! Vores supportteams er fyldt med erfarne Linux-teknikere og talentfulde systemadministratorer, som har indgående kendskab til flere webhostingteknologier, inklusive dem, der er beskrevet i denne artikel.

Hvis du har spørgsmål vedrørende denne artikel, er vi altid til rådighed. tilgængelig for at give oplysninger til alle spørgsmål relateret til denne artikel, 24 timer i døgnet, 7 dage om ugen 365 dage om året.

Hvis du er en fuldt administreret VPS-server, Cloud Dedicated, VMWare Private Cloud, Private Parent-server, Managed Cloud-servere eller en dedikeret serverejer, og du er utilpas med at udføre nogen af ​​de skitserede trin, vi kan kontaktes via telefon på @800.580.4985, en chat- eller supportbillet for at hjælpe dig med denne proces.


  1. Hvordan kan jeg gemme og hente billeder fra en MySQL-database ved hjælp af PHP?

  2. Hvad er forskellen mellem varchar og nvarchar?

  3. SQL MIN() for begyndere

  4. Hvordan ændres den udenlandske nøglehenvisningshandling? (opførsel)