ClickHouse¶
Այս հոդվածում
Տեղեկատվություն
ClickHouse-ը բարձր արտադրողականության սյունակային տվյալների պահպանման համակարգ է (DBMS), որը նախագծված է OLAP դասի վերլուযական հարցումներ կատարելու համար: DBMS-ը կենտրոնացված է մեծ ծավալի տվյալների վերլուզության վրա՝ ցածր լատենտությամբ, և լայնորդ մշակման առաջադրանքներում:
ClickHouse. Հիմնական գործառույթները¶
- Սյունակային պահպանում: տվյալները պահվում են ըստ սյունակների, այլոչ թե ըստ տողերի, ինչը զգալիորեն արագացնում է վերլուզական հարցումների կատարումը և նվազեցնում մշակվող տվյալների ծավալը:
- Բարձր արտադրողականություն: օպտիմալացված է հսկայական տվյալների հավաքածուների մշակման համար և կարող է լինել կատարել հարցումներ միլիարդավոր տողերի վրա՝ շնորհիվ վեկտորացված մշակման և CPU-ի արդյունավետ օգտագործման:
- Տվյալների սեղմում: կիրառում է հատուկ սեղմման ալգորիթմներ, որոնք կարող են էապես նվազեցնել պահվող տվյալների քանակը (հաճախ մի քանի անգամ փոքր, քան տողերի վրա հիմնված DBMS-ները), հատկապես անալիտիկ ծանրաբեռնվածության պայմաններում:
- SQL համատեղելիություն: աջակցում է ընդլայնված SQL շարահյուսությունը՝ լրացուցիչ անալիտիկ ֆունկցիաներով, ինչը հեշտացնում է գոյություն ունեցող հավելվածների միգրացիան:
- Distributed մշակում: թույլ է տալիս ստեղծել կլաստերներ հորիզոնական մասշտաբավորման և բազմաթիվ սերվերների վրա տվյալների մշակման համար:
- Տվյալների ռեպլիկացիա: ներկառուցված ռեպլիկացման աջակցումը ապահովում է սխալամակկություն և տվյալների բարձր հասանելիություն:
- Բազմակի տվյալների ֆորմատների աջակցություն: կարող է ներմուծել և արտահանել տվյալներ 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 միջոցով:
Ավտորիզացման տվյալներ:
- Սերվերի IP հասցե: տրվում է էլեկտրոնային նամակով և վահանակում (control panel);
- Մուտք:
default; - Գաղտնաբառ: համապատասխանում է
rootհաշվի գաղտնաբառին և ուղարկվում է էլեկտրոնային հասցեին:
Զգուշացում
GUI հաճախորդների համար (DBeaver, DataGrip և այլն) օգտագործեք port 8123 (HTTP ինտերֆեյս): Port 9000-ը պահպանված է միայն բնական clickhouse-client-ի համար:
Միացում ClickHouse-ին¶
Միացման մեթոդներ
Այս բաժինը նկարագրում է clickhouse-client (հրամանի տողի հաճախորդ) և DBeaver (գրաֆիկական ինտերֆեյս) միջոցով ClickHouse-ին միանալու ամենատարածված ձևերը: ClickHouse-ը նաև աջակցում է միացումներ այլ հաճախորդների միջոցով՝ DataGrip, Tableau, MySQL Workbench (port 9004 պորտի միջոցով), pgAdmin (port 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 | Cause | Fix |
|---|---|---|
transport error: 400 | Port 9000-ը օգտագործվում է 8123-ի փոխարեն | Փոխեք port 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;
Ժամանակային շարքեր:
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-ի միջոցով հետևեք այս հրահանգներին։