Անցնել պարունակությանը

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. Կապ սերվերից (լոկալ):

clickhouse-client

2. Կապ հեռակա մեքենայից:

clickhouse-client --host <IP-address> --port 9000 --user default --password <password>

3. Պարզ հարցում կատարելը:

SELECT version();

4. Բազաների ցանկը տեսնելը:

SHOW DATABASES;

Կապը 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 DATABASE IF NOT EXISTS my_database;

Աղյուսակ ստեղծելը

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 * FROM my_database.events LIMIT 10;

Տվյալների ագրեգացում:

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;

Տվյալների ներմուծում:

INSERT INTO my_database.logs
FROM INFILE '/path/to/file.csv'
FORMAT CSV;

Օգտատերերի և իրավունքների կառավարում

Օգտատեր ստեղծելը:

CREATE USER analyst IDENTIFIED BY 'secure_password';

Թույլտվություններ տալը:

GRANT SELECT ON my_database.* TO analyst;

Օգտատերերի ցուցակը տեսնելը:

SHOW USERS;

Իրավունքները տեսնելը:

SHOW GRANTS FOR analyst;

Ծառայության կառավարում

Ծառայության գործարկումը:

clickhouse start

Ծառայության կանգնեցումը:

clickhouse stop

Ծառայության վերագործարկումը:

clickhouse restart

Ծառայության կարգավիճակը:

clickhouse status

Լոգերի դիտումը:

tail -f /var/log/clickhouse-server/clickhouse-server.log

Նշում

Եթե դուք չեք աշխատում որպես root, հրամանների սկզբում ավելացրեք sudo՝ sudo clickhouse start

Ակտիվ պորտերի ստուգում

Տեսնելու համար, թե որ պորտեր վրա է ClickHouse-ը լսում:

ss -tlnp | grep clickhouse

Կամ ավելի մանրամասն:

ss -tlnp | grep $(pidof clickhouse-server)

Կարգավորված պորտերը ստուգելու համար կոնֆիգուրացիայում:

cat /etc/clickhouse-server/config.xml | grep -E "port>" | head -20

Կոնկրետ պորտ ստուգելու համար:

ss -tlnp | grep :8123

Ակնկալվող պորտերի ստուգման արդյունքը:

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-ի միջոցով տեղադրելու համար հետևեք այս հրահանգներին.

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×