sql >> Database >  >> RDS >> Database

ClickHouse installeren en configureren op Ubuntu 20.04

Wat is ClickHouse?

ClickHouse is een open-source kolomgeoriënteerd DBMS (of databasebeheersysteem) dat voornamelijk wordt gebruikt voor OLAP (of de online analytische verwerking van query's). Het is in staat om razendsnel realtime analytische gegevens en rapportages te genereren met behulp van SQL-query's. Het is fouttolerant, schaalbaar, zeer betrouwbaar en bevat een uitgebreide set tools.

In een gewone database worden gegevens opgeslagen in tabellen, kolommen en rijen. In een tabel worden de gerelateerde waarden fysiek naast elkaar in één rij opgeslagen, wat essentieel is voor de werking ervan. Dit is hoe de meeste databases van het stringtype werken.

Een paar voorbeelden van deze vorm van database zijn:

  • MySQL
  • Postgres
  • SQLite

Gegevens worden opgeslagen zoals hieronder weergegeven in een kolomvormige database:

Het lijkt op elkaar, maar de verschillen zijn als volgt:waarden uit verschillende kolommen worden afzonderlijk opgeslagen, terwijl gegevens uit één kolom samen worden opgeslagen. Voorbeelden van kolomgeoriënteerde tabellen:

  • Vertica
  • InfiniDB
  • Google Dremel

Dergelijke DBMS's slaan records op in blokken, gegroepeerd op kolommen in plaats van rijen. Door geen gegevens voor de kolommen te laden, besteden ze minder tijd aan het lezen van de gegevens bij het uitvoeren van query's, waardoor DBMS'en gegevens kunnen berekenen en veel sneller resultaten kunnen retourneren dan databases die in blokken zijn gegroepeerd. Kolomgeoriënteerde databases kunnen doorgaans het beste worden toegepast in OLAP-scenario's, waar ze gewoonlijk 100 keer sneller zijn in het verwerken van de meeste query's in vergelijking met databases van het stringtype.

Zoals we kunnen zien aan de hand van de bovenstaande illustraties, stelt OLAP ons in staat om grote hoeveelheden gegevens te ordenen en complexe query's van meerdere ordes van grootte sneller uit te voeren dan een typische database. Daarom is het uiterst nuttig om met grote hoeveelheden input te werken wanneer het analyseren van gegevens en/of bedrijfsanalyse vereist is.

SQL-gebruik

ClickHouse gebruikt een dialect van SQL, dat vergelijkbaar is met de standaard Structured Query Language, maar het bevat extra extensies:verschillende arrays, functies van een hogere orde, geneste structuren, functies voor het werken met URL's en de mogelijkheid om met een extern woordenboek te werken, enz.

Hoewel we snelheid en big data-verwerking winnen, verliezen we ook andere aspecten, waaronder de volgende opties:

  • Gebrek aan transacties.
  • Sterke gegevenstypen waarvoor expliciet casten nodig is.
  • Voor sommige bewerkingen moeten tussenliggende gegevens in het RAM worden opgeslagen.
  • Gebrek aan een volwaardige query-optimizer.
  • Lezen van gegevens in een database.

Desondanks laat ClickHouse hoge prestaties zien en wint het van zijn vele concurrenten. ClickHouse is ontwikkeld om problemen in webanalyse op te lossen voor Yandex.Metrica, het op twee na populairste webanalysesysteem ter wereld. Het wordt ook door Cloudflare gebruikt om websitestatistieken voor zijn gebruikers te verwerken.

Vereisten

Om te installeren hebben we nodig:

  • Een server met 2 cores die minimaal 2 GB RAM gebruikt
  • Een Ubuntu 20.04 LTS-besturingssysteem
  • Toegang tot het root-gebruikersaccount (zoals alle acties uitgevoerd als root).
Opmerking:als opdrachten worden uitgevoerd als een gewone gebruiker, moet de opdracht sudo bij alle opdrachten worden gevoegd.

ClickHouse-installatie op Ubuntu 20.04

Voordat we gaan installeren, zullen we het systeem en de pakketten op de server updaten.

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 onderhoudt een repository met de nieuwste versie van ClickHouse, dus we moeten deze toevoegen. Voeg ook een GPG-sleutel toe om de repository te bekijken en ClickHouse en toekomstige updates veilig te installeren.

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:~# 

Voeg de repository toe aan de lijst met APK-repository's.

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:~# 

Vervolgens werken we onze serverpakketten bij.

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:~#

Eindelijk kunnen we ClickHouse installeren. Voer een wachtwoord in wanneer daarom wordt gevraagd.

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 we ClickHouse hebben geïnstalleerd, laten we het op de achtergrond uitvoeren.

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

Status verifiëren

In deze stap controleren we gewoon of alles werkt zoals verwacht.

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)

De onderstaande regels zijn degene waar we goed op moeten letten.

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

De firewall configureren

Als u geen firewall gebruikt, kunt u deze stap overslaan. Als u van plan bent om op afstand verbinding te maken en een firewall hebt ingeschakeld, is deze stap noodzakelijk. Open en bewerk het configuratiebestand en verwijder de commentaar op de onderstaande regel.

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

Nadat de bewerking is voltooid, slaat u het bestand op met de Ctrl+S en Ctrl+X sleutels en start de ClickHouse-service opnieuw.

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

Open poorten

Open vervolgens poort 8123 in de firewall om toegang voor uw IP-adres toe te staan.

ufw allow from YOUR_IP_SERVER/32 to any port 8123

Open vervolgens poort 9000 voor de clickhouse-client IP-adres.

 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:~#  

Verbinding verifiëren

Gebruik de volgende vraag om te controleren of alles werkt wanneer u op afstand verbinding maakt.

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

Basisopdrachten en interacties leren

In ClickHouse kunnen we databases maken en neerzetten met behulp van de gewijzigde SQL-syntaxis. Laten we de onderstaande voorbeelden eens bekijken. Laten we eerst verbinding maken met 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 :)  

Database maken

Zodra we in de ClickHouse-opdrachtregel zijn, maken we een database met de naam liquidweb met behulp van de volgende syntaxis.

host :) CREATE DATABASE liquidweb;

CREATE DATABASE liquidweb

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

Ok.

0 rows in set. Elapsed: 0.004 sec. 

host :) 

In ClickHouse is de tabel bijna hetzelfde als in andere databases met een set gerelateerde gegevens in een gestructureerd formaat. We kunnen kolommen en hun typen specificeren, rijen toevoegen en verschillende soorten query's uitvoeren op de DB.

Tabel maken

Voordat we een tabel maken, is het belangrijk om de typen kolommen te kennen en te begrijpen die beschikbaar zijn voor gebruik. De volgende kolomtypes zijn bruikbaar:

  • UInt64 — Deze tabel wordt gebruikt om gehele getallen op te slaan van 0 tot 18446744073709551615.
  • Float64 — Elke tabel die Float64 gebruikt, kan getallen met drijvende komma opslaan, zoals 10.5, 18754.067, enz.
  • String — Hier vervangt de tekenreekstabel VARCHAR, BLOB, CLOB en andere typen van verschillende DBMS'en
  • Datum — Deze tabel wordt gebruikt om datums op te slaan in de indeling JJJJ-MM-DD.
  • DateTime — Hier wordt de DateTime-tabel gebruikt om datums en tijden op te slaan in het preciezere JJJJ-MM-DD UU:MM:SS-formaat

Gegevensstructuren

ClickHouse definieert de structuur van de onderliggende gegevens door de exacte gegevens te beschrijven, de mogelijkheid om de tabel te doorzoeken, de modi van gelijktijdige toegang tot de tabel en ondersteuning voor indexen. ClickHouse heeft verschillende mogelijkheden die geschikt zijn voor verschillende gebruiksomstandigheden.

SamenvoegenTree

Het meest gebruikte mechanisme is de table engine-bewerking genaamd MergeTree . Deze functie is ontworpen voor het invoegen van grote hoeveelheden gegevens in een tabel. Het wordt ten zeerste aanbevolen voor gebruik in productiedatabases vanwege de geoptimaliseerde ondersteuning voor het invoegen van grote hoeveelheden realtime activa, evenals de betrouwbaarheid en ondersteuning voor query's.

Database selecteren

Laten we verder gaan met oefenen. Laten we eerst een database selecteren waarin we een tabel gaan maken.

host :) USE liquidweb;

USE liquidweb

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

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Tabel maken

Vervolgens maken we een tabel met de naam collega's .

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

Laten we eens kijken welke waarden we hebben toegevoegd.

  • id - Dit is de primaire sleutelkolom. Elke regel moet een unieke identificatie hebben.
  • naam - Een kolom met een tekenreekswaarde.
  • url - Een kolom met een tekenreekswaarde die een link naar het profiel bevat.
  • gemaakt - De datum waarop de medewerker in het systeem verscheen.

Nadat we de kolommen in de tabel hebben gedefinieerd, specificeren we de MergeTree mechanisme voor het opbergen van de tafel. Vervolgens wijzen we de kolommen aan en definiëren vervolgens de kolommen op tabelniveau.

  • PRIMAIRE SLEUTEL - Specificeert de primaire sleutelkolom.
  • BESTEL DOOR - De opgeslagen tabelwaarden zijn gesorteerd op id-kolom.

Gegevens toevoegen

Nu kunnen we met de tabel werken. Laten we wat gegevens toevoegen aan de collega's tafel.

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

Laten we meer gegevens toevoegen.

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

Kolom toevoegen

Hoewel we enkele waarden hebben toegevoegd, realiseerden we ons dat we vergeten waren nog een kolom toe te voegen, dus moeten we deze hieronder toevoegen.

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

Gegevens bewerken

Nu moeten we de oude gegevens op de een of andere manier wijzigen. In versie 19.13 biedt ClickHouse vanwege de implementatie geen ondersteuning voor het bijwerken en verwijderen van afzonderlijke rijen. Maar ClickHouse ondersteunt bulkupdates en verwijderingen en heeft ook zijn eigen syntaxis voor deze bewerkingen.

Nu werken we onze lijnen bij.

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

Na WAAR , we stellen de filterparameters in en kunnen ook onnodige parameters verwijderen.

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

Kolom verwijderen

Ga als volgt te werk om kolommen uit een tabel te verwijderen.

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

Gegevens ophalen via zoekopdrachten

Vervolgens gaan we verder met het demonstreren van het ophalen van gegevens met behulp van query's. ClickHouse gebruikt hier SQL-syntaxis met zijn toevoegingen. Laten we proberen wat basisinformatie te verzamelen.

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 :) 
  • SELECTEER - Selecteer verschillende parameters.
  • VAN - Bepaal welke tabel we waarden zullen ontvangen.
  • WAAR - Stel de parameters en filters in met betrekking tot welke waarde en hoeveel.

We kunnen ook aanvullende zoekparameters gebruiken, zoals:

  • tel - Retourneert het aantal rijen dat aan de voorwaarden voldoet.
  • som - Geeft de som van de geselecteerde waarden terug.
  • gem - Retourneert het gemiddelde van de geselecteerde items.
  • uniq - Retourneer het geschatte aantal overeenkomende enkele rijen.
  • topK - Retourneert een array van de meest voorkomende waarden van een specifieke kolom met behulp van een algoritme.

Drop tabellen en databases

Vervolgens gaan we verder met het verwijderen van tabellen en databases. Laten we eerst een tabel verwijderen.

host :) DROP TABLE colleagues;

DROP TABLE colleagues

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

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Verwijder nu de database.

host :) DROP DATABASE liquidweb;

DROP DATABASE liquidweb

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

Ok.

0 rows in set. Elapsed: 0.001 sec. 

host :) 

Om de database te verlaten, voert u de standaard 'exit'-waarde in.

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

Maak een gebruiker

Nu we alle basisfuncties hebben behandeld, gaan we verschillende databasegebruikers maken. Het ClickHouse-configuratiebestand kan worden gevonden in het volgende pad /etc/clickhouse-client/config.xml. Ga naar dit bestand, open het met vim of nano en geef de waarden op in de volgende volgorde.

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

We zullen de nano-editor gebruiken om het bestand te bewerken.

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

Voer de vereiste informatie in en sla de wijzigingen op met Ctrl+S en Ctrl+X toetsen

Verbinden met ClickHouse

Ten slotte, om verbinding te maken met ClickHouse, voert u de volgende opdracht in de terminal in.

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

Conclusie

In deze tutorial hebben we veel aspecten van ClickHouse ontdekt. We ontdekten hoe het werkt, wanneer het kan worden toegepast en in welke omstandigheden het nuttig is. We hebben vastgesteld hoe we een sleutel en de repository kunnen toevoegen en vervolgens de ClickHouse-software kunnen installeren. Evenzo hebben we vervolgens de firewall ingesteld en geconfigureerd om toegang toe te staan. Verder hebben we databases en tabellen gemaakt, kolommen en gegevens toegevoegd en vervolgens bijgewerkt en verwijderd. Ten slotte hebben we laten zien hoe u gebruikers kunt maken in het configuratiebestand.

We zijn er trots op de meest behulpzame mensen in Hosting™ te zijn! Onze ondersteuningsteams zijn gevuld met ervaren Linux-technici en getalenteerde systeembeheerders die een grondige kennis hebben van meerdere webhostingtechnologieën, waaronder de technologieën die in dit artikel worden besproken.

Mocht u vragen hebben over dit artikel, dan staan ​​wij altijd voor u klaar beschikbaar om informatie te verstrekken aan alle vragen met betrekking tot dit artikel, 24 uur per dag, 7 dagen per week 365 dagen per jaar.

Als u een volledig beheerde VPS-server, Cloud Dedicated, VMWare Private Cloud, Private Parent-server, Managed Cloud Servers of een Dedicated server-eigenaar bent en u zich niet op uw gemak voelt bij het uitvoeren van een van de beschreven stappen, we zijn telefonisch bereikbaar op @800.580.4985, een chat- of supportticket om u te helpen bij dit proces.


  1. MySQL TABLE-instructie

  2. Tikken en parkeren:een datamodel voor een parkeerapp

  3. Hoe Tan() werkt in PostgreSQL

  4. MariaDB Cluster offline installatie voor CentOS