ClickHouse¶
Այս հոդվածում
Տեղեկատվություն
ClickHouse-ը բարձր արտադրողականության սյունակային տվյալների բազաների կառավարման համակարգ է (DBMS), որը նախագծված է OLAP դասի վերլուծական հարցումներ կատարելու համար: DBMS-ը կենտրոնացված է մեծ ծավալի տվյալների վերլուծության վրա՝ ցածր լատենտությամբ, և լայնորեն կիրառվում է վերլուծության, մոնիթորինգի, լոգավորման և տելեմետրիայի մշակման առաջադրանքներում:
ClickHouse. Հիմնական հնարավորություններ¶
- Սյունակային պահպանում: տվյալները պահվում են ըստ սյունակների, այլ ոչ թե ըստ տողերի, ինչը զգալիորեն արագացնում է վերլուծական հարցումների կատարումը և նվազեցնում մշակվող տվյալների ծավալը:
- Բարձր արտադրողականություն: օպտիմալացված է հսկայական տվյալների հավաքածուների մշակման համար և capable է կատարել հարցումներ միլիարդավոր տողերի վրա՝ շնորհիվ վեկտորացված մշակման և CPU-ի արդյունավետ օգտագործման:
- Տվյալների սեղմում: կիրառում է մասնագիտացված սեղմման ալգորիթմներ, որոնք կարող են էապես կրճատել պահվող տվյալների քանակը (հաճախ մի քանի անգամ ավելի փոքր, քան տողերի վրա հիմնված DBMS-ները), հատկապես վերլուծական ծանրաբեռնվածության պայմաններում:
- SQL համատեղելիություն: աջակցում է ընդլայնված SQL շարահյուսతյուն՝ լրացուցիչ վերլուծական ֆունկցիաներով, ինչը պարզեցնում է գոյի մեջ եղած հավելվածների միգրացիան:
- Distributed մշակում: թույլ է տալիս ստեղծել կլաստերներ հորիզոնական մասշտաբավորման և բազմաթիվ սերվերների վրա տվյալների մշակման համար:
- Տվյալների ռեպլիկացիա: ներկառուցված ռեպլիկացման աջակցումը ապահովում է սխալամակկության》(fault tolerance)կայունություն և տվյալների բարձր հասանելիություն:
- Տվյալների բազմաթիվ ձևաչափերի աջակցում: կարող է ներմուծել և արտահանել տվյալներ CSV, JSON, Parquet, Avro և այլ ձևաչափերով:
- Materialized views: ավտոմատ կերպով հավաքագրում է տվյալները ֆոնային ռեժիմում՝ կրկնվող հարցումները արագացնելու համար:
- Ինտեգրում արտաքին աղբյուրների հետ: աջակցում է MySQL, PostgreSQL, MongoDB, Kafka, S3 և այլ համակարգերից տվյալների ուղղակի ընթերցումը:
Տեղակայման հնարավորություններ¶
| ID | Ծրագրային ապահովման անվանում | Համատեղելի ՕՀ | VM | BM | VGPU | GPU | Նվազագույն CPU (միջուկներ) | Նվազագույն RAM (ԳԲ) | Նվազագույն HDD/SSD (ԳԲ) | Սեփական դոմեն | Ակտիվ |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 492 | ClickHouse | Ubuntu 24.04, Ubuntu 22.04 | + | + | + | + | 4 | 8 | 120 | Ոչ | ՊԱՏՎԻՐԵԼ |
Նշում
8443 և 9100 պորտերը ռեժիմում են անջատված ռեժիմով և պահանջում են լրացուցիչ կարգավորում /etc/clickhouse-server/config.xml ֆայլում:
Նշում
Եթե այլ բան նախատեսված չէ, մենք տեղադրում ենք ծրագրի վերջին թողարկված տարբերակը պաշտոնական մշակողի կայքից:
ClickHouse-ի տեղակայումից հետո սկսել աշխատանքը¶
Հավելվածի վճարումից հետո գրանցման ժամանակ նշված էլեկտրոնային հասցեին կուղարկվի ծանուցում, որ սերվերը պատրաստ է աշխատանքի: Այն կպարունակի VPS-ի IP հասցեն, ինչպես նաև մուտքի (login) և գաղտնաբառը (password) կապման համար: Մեր ընկերության հաճախորդները կառավարում են սերվերի սարքավորումները և API վերահսկողական պանելը՝ Invapi-ի միջոցով:
Ավտորիզացիայի տվյալներ:
- Server IP address: տրվում է էլեկտրոնային փոստով և վերահսկողական պանելում:
- Login:
default; - Password: համապատասխանում է
rootհաշվի գաղտնաբառին և ուղարկվում է էլեկտրոնային հասցեին:
Զգուշացում
GUI հաճախորդների համար (DBeaver, DataGrip և այլն) օգտագործեք port 8123 (HTTP interface): 9000 պորտը պահպանված է միայն բնական (native) clickhouse-client-ի համար:
Կապը ClickHouse-ի հետ¶
Կապման մեթոդներ
Այս բաժինը նկարագրում է ClickHouse-ին clickhouse-client (հրամանի տողի հաճախորդ) և DBeaver (գրաֆիկական ինտերֆեյս) միջոցով կապվելու ամենատարածված եղանակները: ClickHouse-ը նաև աջակցում է կապ՝ այլ հաճախորդների միջոցով, ինչպիսիք են՝ DataGrip, Tableau, MySQL Workbench (9004 պորտի միջոցով), pgAdmin (9005 պորտի միջոցով), ինչպես նաև Python, Go, Java և այլ լեզուների ծրագրավորման գրադարանները:
Կապը clickhouse-client-ի միջոցով¶
ClickHouse-ը ներառում է բազայի գործողությունների համար նախատեսված բնական հրամանի տողի հաճախորդ:
1. Կապ սերվերից (լոկալ):
2. Կապ հեռակա մեքենայից:
3. Պարզ հարցում կատարելը:
4. Բազաների ցանկը տեսնելը:
Կապը DBeaver-ի միջոցով¶
DBeaver-ը համընտրանկային GUI հաճախորդ է տարբեր տվյալների բազաների հետ աշխատելու համար, ներառյալ ClickHouse-ը:
1. DBeaver-ի տեղադրումը
Ներբեռնեք և տեղադրեք DBeaver-ը պաշտոնական կայքից:
2. Նոր կապ ստեղծելը
- Բացեք DBeaver-ը
- Ընտրեք Database >> New Database Connection (կամ սեղմեք
Ctrl+Shift+N)

- Բազաների ցանկում գտեք և ընտրեք ClickHouse

- Սեղմեք
Next
3. Կապման պարամետրերի կարգավորումը
Կարգավորումների պատուհանում նշեք հետևյալ պարամետրերը.
Host: <IP-address of your server>
Port: 8123
Database/Schema: (թողեք դատարկ կամ նշեք default)
Username: default
Password: <root_password>

Կրկնակի կարևոր
DBeaver կապերի համար օգտագործեք port 8123:
4. JDBC դրայվերի ներբեռնումը
Առաջին անգամ կապվելիս DBeaver-ը կառաջարկի ներբեռնել ClickHouse-ի JDBC դրայվը.
- Սեղմեք
Downloadհայտնվող պատուհանում.

- Սպասեք, մինչև դրայվի ներբեռնումը ավարտվի.

- Սեղմեք
OK
5. Կապի թեստավորումը
- Սեղմեք
Test Connection; - Եթե ամեն ինչ ճիշտ է կարգավորված, կհայտնվի հաղորդագրություն՝ Connected (XXX ms):

- Հաղորդագրությունը պետք է ներառի.
- Server: ClickHouse X.X.X.XXX
- Driver: ClickHouse JDBC Driver X.X.X
6. Կարգավորումների ավարտումը
- Սեղմեք
Finish; - Կապը կհայտնվի Database Navigator-ում;
- Բացեք կապի ծառը՝ տեսնելու բազաները, աղյուսակները և այլ օբյեկտներ:

Ընդհանուր խնդիրներ:
| Error | Nguyên nhân | Fix |
|---|---|---|
transport error: 400 | Օգտագործվել է 9000 պորտը՝ 8123-ի փոխարեն | Փոխեք 8123 պորտի վրա |
Connection refused | Սխալ IP կամ firewall-ը արգելափակում է պորտը | Ստուգեք IP հասցեն և firewall-ի կանոնները |
Authentication failed | Սխալ login կամ password | Ստուգեք տվյալները |
Hostname is not specified | SSH թունելը պատահաբար ակտիվացվել է առանց կարգավորման | Փակեք SSH թաբը կապման կարգավորումներում |
Հիմնական գործողությունները ClickHouse-ում¶
Բազա ստեղծելը¶
Աղյուսակ ստեղծելը¶
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);
Տվյալների ներդրում¶
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);
Տվյալների ընտրություն¶
Պարզ հարցում:
Տվյալների ագրեգացում:
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;
Time series (ժամանակային շարքեր):
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;
Տվյալների ներմուծում CSV ֆայլից¶
Աղյուսակ ստեղծելը:
CREATE TABLE my_database.logs
(
timestamp DateTime,
level String,
message String
)
ENGINE = MergeTree()
ORDER BY timestamp;
Տվյալների ներմուծում:
Օգտատերերի և իրավունքների կառավարում¶
Օգտատեր ստեղծելը:
Թույլտվություններ տալը:
Օգտատերերի ցուցակը տեսնելը:
Իրավունքները տեսնելը:
Ծառայության կառավարում¶
Ծառայության գործարկումը:
Ծառայության կանգնեցումը:
Ծառայության վերագործարկումը:
Ծառայության կարգավիճակը:
Լոգերի դիտումը:
Նշում
Եթե դուք չեք աշխատում որպես root, հրամանների սկզբում ավելացրեք sudo՝ sudo clickhouse start
Ակտիվ պորտերի ստուգում¶
Տեսնելու համար, թե որ պորտեր վրա է ClickHouse-ը լսում:
Կամ ավելի մանրամասն:
Կարգավորված պորտերը ստուգելու համար կոնֆիգուրացիայում:
Կոնկրետ պորտ ստուգելու համար:
Ակնկալվող պորտերի ստուգման արդյունքը:
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)
Նշում
ClickHouse-ի կարգավորումների և օպտիմալացման վերաբերյալ մանրամասն տեղեկատվությունը հասանելի է պաշտոնական մշակողի փաստաթղթերում.
ClickHouse սերվերի պատվիրում¶
Այս ծրագիրը API-ի միջոցով տեղադրելու համար հետևեք այս հրահանգներին.