Co to jest ClickHouse?
ClickHouse to zorientowany na kolumny DBMS (lub system zarządzania bazą danych) o otwartym kodzie źródłowym, używany głównie do OLAP (lub internetowego przetwarzania analitycznego zapytań). Jest w stanie błyskawicznie generować dane analityczne w czasie rzeczywistym i raportować z wykorzystaniem zapytań SQL. Jest odporny na błędy, skalowalny, wysoce niezawodny i zawiera bogaty zestaw narzędzi.
W zwykłej bazie danych dane są przechowywane w tabelach, kolumnach i wierszach. W tabeli powiązane wartości są fizycznie przechowywane obok siebie w jednym wierszu, co ma kluczowe znaczenie dla jej działania. Tak działa większość baz danych typu string.
Oto kilka przykładów takiej formy bazy danych:
- MySQL
- Postgres
- SQLite
Dane są przechowywane w kolumnowej bazie danych, jak pokazano poniżej:
Wygląda to podobnie, ale różnice są następujące:wartości z różnych kolumn są przechowywane osobno, a dane z jednej kolumny są przechowywane razem. Przykłady tabel zorientowanych kolumnowo:
- Pion
- InfiniDB
- Google Dremel
Takie DBMS przechowują rekordy w blokach, pogrupowanych według kolumn, a nie wierszy. Nie ładując danych dla kolumn, spędzają mniej czasu na czytaniu danych podczas wykonywania zapytań, pozwalając DBMS-om na obliczanie danych i zwracanie wyników znacznie szybciej niż bazy danych pogrupowane w bloki. Zazwyczaj bazy danych zorientowane na kolumny najlepiej sprawdzają się w scenariuszach OLAP, w których są zwykle 100 razy szybsze w przetwarzaniu większości zapytań w porównaniu z bazami danych typu łańcuchowego.
Jak widać na powyższych ilustracjach, OLAP pozwala nam organizować duże ilości danych i wykonywać złożone zapytania o wiele rzędów wielkości szybciej niż typowa baza danych. Dlatego jest to niezwykle przydatne przy pracy z dużymi ilościami danych wejściowych, gdy wymagana jest analiza danych i/lub analiza biznesowa.
Użycie SQL
ClickHouse używa dialektu SQL, który jest podobny do standardowego Structured Query Language, ale zawiera dodatkowe rozszerzenia:różne tablice, funkcje wyższego rzędu, struktury zagnieżdżone, funkcje do pracy z adresami URL oraz możliwość pracy ze słownikiem zewnętrznym, itp.
Podczas gdy zyskujemy szybkość i przetwarzanie dużych zbiorów danych, tracimy również inne aspekty, w tym następujące opcje:
- Brak transakcji.
- Silne typy danych, które wymagają wyraźnego rzutowania.
- Musi przechowywać dane pośrednie w pamięci RAM dla niektórych operacji.
- Brak pełnego optymalizatora zapytań.
- Odczyt punktowy danych w bazie danych.
Mimo to ClickHouse wykazuje wysoką wydajność i wygrywa z wieloma konkurentami. ClickHouse został opracowany w celu rozwiązywania problemów z analityką internetową dla Yandex.Metrica, trzeciego najpopularniejszego systemu analityki internetowej na świecie. Jest również używany przez Cloudflare do przetwarzania statystyk witryny dla użytkowników.
Wymagania wstępne
Aby zainstalować, potrzebujemy:
- Serwer dwurdzeniowy wykorzystujący co najmniej 2 GB pamięci RAM
- System operacyjny Ubuntu 20.04 LTS
- Dostęp do konta użytkownika root (jako wszystkie działania wykonywane jako root).
Instalacja ClickHouse na Ubuntu 20.04
Przed instalacją zaktualizujemy system i pakiety na serwerze.
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 utrzymuje repozytorium z najnowszą wersją ClickHouse, więc musimy je dodać. Dodaj również klucz GPG, aby sprawdzić repozytorium i bezpiecznie zainstalować ClickHouse oraz przyszłe aktualizacje.
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:~#
Dodaj repozytorium do listy repozytoriów APK.
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:~#
Następnie aktualizujemy nasze pakiety serwerów.
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:~#
Na koniec możemy zainstalować ClickHouse. Po wyświetleniu monitu wprowadź hasło.
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:~#
Uruchom usługę ClickHouse
Teraz, gdy zainstalowaliśmy ClickHouse, uruchom go w tle.
root@host:~# service clickhouse-server start
root@host:~#
Zweryfikuj stan
Na tym etapie po prostu sprawdzamy, czy wszystko działa zgodnie z oczekiwaniami.
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)
Poniższe linie to te, na które musimy zwrócić szczególną uwagę.
Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; ve>
Active: active (running) since Wed 2020-12-30 22:08:26 +03; 25s ago
Skonfiguruj zaporę sieciową
Jeśli nie używasz zapory, pomiń ten krok. Jeśli planujesz łączyć się zdalnie i masz włączoną zaporę, ten krok jest konieczny. Otwórz i edytuj plik konfiguracyjny i odkomentuj poniższą linię.
<!-- <listen_host>0.0.0.0</listen_host> →
Po zakończeniu edycji zapisz plik, używając Ctrl+S i Ctrl+X klawisze, a następnie ponownie uruchom usługę ClickHouse.
root@host:~# service clickhouse-server restart
root@host:~#
Otwórz porty
Następnie otwórz port 8123 w zaporze, aby umożliwić dostęp dla Twojego adresu IP.
ufw allow from YOUR_IP_SERVER/32 to any port 8123
Następnie otwórz port 9000 dla klienta clickhouse Adres IP.
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:~#
Zweryfikuj połączenie
Aby sprawdzić, czy wszystko działa podczas zdalnego łączenia, użyj następującego zapytania.
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 :)
Nauka podstawowych poleceń i interakcji
W ClickHouse możemy tworzyć i usuwać bazy danych przy użyciu zmodyfikowanej składni SQL. Rzućmy okiem na poniższe przykłady. Najpierw połączmy się z 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 :)
Utwórz bazę danych
Gdy znajdziemy się w wierszu poleceń ClickHouse, tworzymy bazę danych o nazwie liquidweb przy użyciu następującej składni.
host :) CREATE DATABASE liquidweb;
CREATE DATABASE liquidweb
Query id: 9169dbaa-402e-4d37-828f-5fde43d4a91d
Ok.
0 rows in set. Elapsed: 0.004 sec.
host :)
W ClickHouse tabela jest prawie taka sama jak w innych bazach danych z zestawem powiązanych danych w ustrukturyzowanym formacie. Możemy określać kolumny i ich typy, dodawać wiersze i wykonywać różnego rodzaju zapytania do bazy danych.
Utwórz tabelę
Zanim utworzymy tabelę, ważne jest, aby znać i rozumieć typy kolumn, z których można korzystać. Możliwe są następujące typy kolumn:
- UInt64 — Ta tabela służy do przechowywania liczb całkowitych z zakresu od 0 do 18446744073709551615.
- Float64 — Każda tabela korzystająca z Float64 może przechowywać liczby zmiennoprzecinkowe, takie jak 10.5, 18754.067 itd.
- Ciąg — Tutaj tablica ciągów zastępuje VARCHAR, BLOB, CLOB i inne typy z różnych DBMS
- Data — Ta tabela służy do przechowywania dat w formacie RRRR-MM-DD.
- DataGodzina — Tutaj tabela DateTime służy do przechowywania dat i godzin w bardziej precyzyjnym formacie RRRR-MM-DD GG:MM:SS
Struktury danych
ClickHouse definiuje strukturę danych bazowych, opisując dokładne dane, możliwość wykonywania zapytań do tabeli, tryby współbieżnego dostępu do tabeli oraz obsługę indeksów. ClickHouse ma różne możliwości, które są odpowiednie dla różnych warunków użytkowania.
Połącz drzewo
Najpowszechniej stosowanym mechanizmem jest operacja silnika tabel o nazwie MergeTree . Ta funkcja jest przeznaczona do wstawiania dużych ilości danych do tabeli. Jest wysoce zalecany do użytku produkcyjnej bazy danych ze względu na zoptymalizowaną obsługę wstawiania dużych ilości zasobów w czasie rzeczywistym, a także niezawodność i obsługę zapytań.
Wybierz bazę danych
Przejdźmy do dalszej praktyki. Najpierw wybierzmy bazę danych, w której utworzymy tabelę.
host :) USE liquidweb;
USE liquidweb
Query id: aba15bcb-224b-426d-9f74-350a88346115
Ok.
0 rows in set. Elapsed: 0.001 sec.
host :)
Utwórz tabelę
Następnie tworzymy tabelę o nazwie koledzy .
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 :)
Sprawdźmy, jakie wartości dodaliśmy.
- id - To jest kolumna klucza podstawowego. Każda linia musi mieć unikalny identyfikator.
- nazwa - Kolumna z wartością ciągu.
- url - Kolumna z wartością ciągu, która zawiera link do profilu.
- utworzono - Data pojawienia się pracownika w systemie.
Po zdefiniowaniu kolumn w tabeli określamy MergeTree mechanizm do przechowywania stołu. Następnie wyznaczamy kolumny, a następnie definiujemy kolumny na poziomie tabeli.
- KLUCZ PODSTAWOWY - Określa kolumnę klucza głównego.
- ZAMÓW PRZEZ - Przechowywane wartości tabeli są sortowane według kolumny identyfikatora.
Dodaj dane
Teraz możemy pracować ze stołem. Dodajmy trochę danych do współpracowników tabela.
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 :)
Dodajmy więcej danych.
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 :)
Dodaj kolumnę
Podczas gdy dodaliśmy kilka wartości, zdaliśmy sobie sprawę, że zapomnieliśmy dodać kolejną kolumnę, więc musimy dodać ją poniżej.
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 :)
Edytuj dane
Teraz musimy jakoś zmienić stare dane. W wersji 19.13 ClickHouse nie obsługuje aktualizacji i usuwania poszczególnych wierszy ze względu na swoją implementację. Jednak ClickHouse obsługuje zbiorcze aktualizacje i usuwanie, a także ma własną składnię dla tych operacji.
Teraz aktualizujemy nasze linie.
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 :)
Po GDZIE , ustawiamy parametry filtra i możemy również usuwać niepotrzebne parametry.
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 :)
Usuń kolumnę
Aby usunąć kolumny z tabeli, wykonaj następujące czynności.
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 :)
Pobieranie danych za pomocą zapytań
Następnie przechodzimy do demonstracji pobierania danych za pomocą zapytań. ClickHouse używa tutaj składni SQL z jej dodatkami. Spróbujmy zebrać podstawowe informacje.
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 :)
- WYBIERZ - Wybierz kilka parametrów.
- OD - Określ, w której tabeli otrzymamy wartości.
- GDZIE - Ustaw parametry i filtry dotyczące wartości i ilości.
Możemy również użyć dodatkowych parametrów wyszukiwania, takich jak:
- liczba - Zwraca liczbę wierszy spełniających warunki.
- suma - Zwraca sumę wybranych wartości.
- średnia - Zwraca średnią wybranych elementów.
- uniq - Zwróć przybliżoną liczbę dopasowanych pojedynczych wierszy.
- topK - Zwraca tablicę najczęstszych wartości określonej kolumny przy użyciu algorytmu.
Upuść tabele i bazy danych
Następnie przechodzimy do usuwania tabel i baz danych. Najpierw usuńmy 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 :)
Teraz usuń bazę danych.
host :) DROP DATABASE liquidweb;
DROP DATABASE liquidweb
Query id: 4ad9a51a-f89d-4be5-be9c-92b8cb38614b
Ok.
0 rows in set. Elapsed: 0.001 sec.
host :)
Aby wyjść z bazy danych, wprowadź standardową wartość 'exit'.
host :) exit
Bye.
root@host:~#
Utwórz użytkownika
Teraz, gdy omówiliśmy wszystkie podstawowe funkcje, utworzymy kilku użytkowników bazy danych. Plik konfiguracyjny ClickHouse może znajdować się w następującej ścieżce /etc/clickhouse-client/config.xml. Przejdź do tego pliku, otwórz go za pomocą vima lub nano i określ wartości w następującej kolejności.
<config> <user>username</user> <password>password</password> <secure>False</secure></config>
Do edycji pliku użyjemy edytora nano.
root@host:~# nano /etc/clickhouse-client/config.xml
root@host:~#
Wprowadź wymagane informacje, a następnie zapisz zmiany za pomocą Ctrl+S i Ctrl+X klawisze
Połącz z ClickHouse
Na koniec, aby połączyć się z ClickHouse, wprowadź następujące polecenie w terminalu.
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 :)
Wniosek
W tym samouczku odkryliśmy wiele aspektów ClickHouse. Odkryliśmy, jak to działa, kiedy można je zastosować i w jakich okolicznościach jest przydatne. Zidentyfikowaliśmy, jak dodać klucz, repozytorium, a następnie zainstalować oprogramowanie ClickHouse. Podobnie konfigurujemy i konfigurujemy zaporę sieciową, aby umożliwić dostęp. Ponadto stworzyliśmy bazy danych i tabele, dodaliśmy kolumny i dane, a następnie je zaktualizowaliśmy i usunęliśmy. Na koniec pokazaliśmy, jak tworzyć użytkowników w pliku konfiguracyjnym.
Jesteśmy dumni z tego, że jesteśmy najbardziej pomocnymi ludźmi w hostingu™! Nasze zespoły pomocy technicznej są wypełnione doświadczonymi technikami Linuxa i utalentowanymi administratorami systemów, którzy mają gruntowną wiedzę na temat wielu technologii hostingowych, w tym tych omówionych w tym artykule.
Jeśli masz jakiekolwiek pytania dotyczące tego artykułu, zawsze jesteśmy dostępne w celu udzielenia informacji na wszelkie pytania związane z tym artykułem, 24 godziny na dobę, 7 dni w tygodniu 365 dni w roku.
Jeśli jesteś w pełni zarządzanym serwerem VPS, serwerem dedykowanym w chmurze, prywatną chmurą VMWare, prywatnym serwerem nadrzędnym, zarządzanymi serwerami w chmurze lub właścicielem serwera dedykowanego i nie czujesz się komfortowo podczas wykonywania którejkolwiek z opisanych czynności, można się z nami skontaktować telefonicznie pod adresem @800.580.4985, czat lub zgłoszenie do pomocy technicznej, aby pomóc Ci w tym procesie.