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

ClickHouse

Այս հոդվածում

Տեղեկատվություն

ClickHouse-ը բարձր արդյունավետության սյունային տվյալների բազայի կառավարման համակարգ (DBMS) է, որը նախատեսված է OLAP դասի անալիտիկ հարցումներ կատարելու համար։ DBMS-ը կենտրոնացած է մեծ ծավալի տվյալների վերլուծության վրա ցածր լատենտությամբ և լայնորեն օգտագործվում է անալիտիկայի, մոնիտորինգի, լոգավորման և տելեմետրիայի մշակման խնդիրներում։

ClickHouse. Հիմնական հնարավորություններ

  • Սյունային պահպանում. տվյալները պահվում են սյունակներով, այլ ոչ թե տողերով, ինչը զգալիորեն արագացնում է անալիտիկ հարցումների կատարումը և նվազեցնում մշակվող տվյալների ծավալը։
  • Բարձր արդյունավետություն. օպտիմալացված է հսկայական տվյալների բազաների հետ աշխատելու համար և կարողանում է կատարել հարցումներ միլիարդավոր տողերի վրա՝ շնորհիվ վեկտորային մշակման և CPU-ի արդյունավետ օգտագործման։
  • Տվյալների սեղմում. օգտագործում է մասնագիտացված սեղմման ալգորիթմներ, որոնք կարող են զգալիորեն նվազեցնել պահվող տվյալների քանակը (հաճախ մի քանի անգամ ավելի քիչ, քան տողային DBMS-ները), հատկապես անալիտիկ բեռի դեպքում։
  • SQL համատեղելիություն. աջակցում է ընդլայնված SQL սինտաքսին՝ լրացուցիչ անալիտիկ ֆունկցիաներով, ինչը պարզեցնում է գոյություն ունեցող հավելվածների միգրացիան։
  • Բաշխված մշակում. հնարավորություն է տալիս ստեղծել կլաստեր՝ հորիզոնական մասշտաբավորման և տվյալների մշակման համար մի քանի սերվերների վրա։
  • Տվյալների ռեպլիկացիա. ներկառուցված ռեպլիկացիայի աջակցությունը ապահովում է սխալանման դիմադրողականություն և տվյալների բարձր հասանելիություն։
  • Տարբեր տվյալների ֆորմատների աջակցություն. կարող է ներմուծել և արտահանել տվյալներ CSV, JSON, Parquet, Avro և այլ ֆորմատներով։
  • Մատերիալացված տեսքեր. ավտոմատ կերպով ագրեգացնում է տվյալները ֆոնային ռեժիմում՝ կրկնվող հարցումները արագացնելու համար։
  • Ինտեգրում արտաքին աղբյուրների հետ. աջակցում է տվյալների ուղղակի ընթերցում 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 Ոչ ՊԱՏՎԻՐԵԼ
  • Տեղադրված ծրագրային ապահովում.

    • ClickHouse Server >= 26.1.1
    • ClickHouse Client >= 26.1.1
  • Տեղադրման առանձնահատկություններ.

    • Ծրագրային ապահովումը տեղադրվում է պաշտոնական մշակողի սկրիպտի միջոցով;
    • Տեղադրման ժամանակ. 5-10 րոպե;
    • Բազան հասանելի է ցանցային կապերի համար՝ տարբեր SQL հաճախորդների միջոցով;
    • Ըստ լռելյայնի օգտագործվում է default օգտատերը՝ root հաշվի գաղտնաբառով։

Կոնֆիգուրացիայի և տվյալների ֆայլերի գտնվելու վայրեր.

  • Հիմնական սերվերի կոնֆիգուրացիա. /etc/clickhouse-server/config.xml
  • Օգտատերերի կարգավորումներ. /etc/clickhouse-server/users.xml
  • Սերվերի լոգեր.
    • /var/log/clickhouse-server/clickhouse-server.log
    • /var/log/clickhouse-server/clickhouse-server.err.log
  • Տվյալներ. /var/lib/clickhouse/
  • PID ֆայլ. /run/clickhouse-server/clickhouse-server.pid
  • Համակարգի սահմանափակումներ. /etc/security/limits.d/clickhouse.conf

Հասանելի պորտեր կապերի համար.

Պորտ Պրոտոկոլ Նպատակ Կարգավիճակ Հաճախորդներ/Օգտագործում
8123 HTTP HTTP ինտերֆեյս Active DBeaver, DataGrip, Tableau, web ինտերֆեյս, JDBC/ODBC
9000 TCP Native ClickHouse բնածին պրոտոկոլ Active clickhouse-client, Python/Go դրայվերներ
9004 MySQL MySQL պրոտոկոլի էմուլյացիա Active MySQL Workbench, mysql հաճախորդ
9005 PostgreSQL PostgreSQL պրոտոկոլի էմուլյացիա Active pgAdmin, psql հաճախորդ
9009 Interserver HTTP Ռեպլիկացիա սերվերների միջև Active Կլաստերի ներսում կապ
8443 HTTPS HTTP ինտերֆեյս SSL-ով Optional Պահանջում է SSL սերտիֆիկատի կոնֆիգուրացիա
9100 gRPC gRPC ինտերֆեյս Optional gRPC հաճախորդներ

Նշում

8443 և 9100 պորտերը լռելյայն անջատված են և պահանջում են լրացուցիչ կոնֆիգուրացիա /etc/clickhouse-server/config.xml ֆայլում։

Նշում

Եթե այլ կերպ նշված չէ, մենք տեղադրում ենք ծրագրային ապահովման վերջին թողարկման տարբերակը պաշտոնական մշակողի կայքից։

Սկսել աշխատել ClickHouse-ի տեղադրումից հետո

Գրանցման ժամանակ նշված էլ. հասցեին կուղարկվի ծանուցում, որ սերվերը պատրաստ է աշխատանքի համար՝ պատվերի վճարումից հետո։ Այն կպարունակի VPS-ի IP հասցեն, ինչպես նաև մուտքի և գաղտնաբառի տվյալները։ Մեր ընկերության հաճախորդները կառավարում են սարքավորումները սերվերի և API կառավարման պանելում - Invapi։

Մուտքի տվյալներ.

  • Սերվերի IP հասցե. տրված է էլ. նամակում և կառավարման պանելում;
  • Օգտատեր. default;
  • Գաղտնաբառ. համընկնում է root հաշվի գաղտնաբառի հետ և ուղարկվում է էլ. հասցեին։

Կարևոր

GUI հաճախորդների (DBeaver, DataGrip և այլն) համար օգտագործեք 8123 պորտը (HTTP ինտերֆեյս)։ 9000 պորտը նախատեսված է միայն բնածին 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: (leave empty or specify default)
Username: default
Password: <root_password>

Անհրաժեշտ է

DBeaver կապերի համար օգտագործեք 8123 պորտը։

4. JDBC դրայվերի ներբեռնում

Առաջին անգամ կապվելիս DBeaver-ը կառաջարկի ներբեռնել JDBC դրայվերը ClickHouse-ի համար.

  • Սեղմեք 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-ում;
  • Բացեք կապի ծառը՝ տվյալների բազաները, աղյուսակները և այլ օբյեկտներ դիտելու համար։

Տարածված խնդիրներ.

Սխալ Պատճառ Լուծում
transport error: 400 Օգտագործվել է 9000 պորտը 8123-ի փոխարեն Փոխեք 8123 պորտի
Connection refused Սխալ IP կամ ֆայրվոլը արգելափակում է պորտը Ստուգեք IP հասցեն և ֆայրվոլի կանոնները
Authentication failed Սխալ օգտատեր կամ գաղտնաբառ Ստուգեք մուտքի տվյալները
Hostname is not specified SSH թունելը պատահականորեն ակտիվացված է՝ առանց կոնֆիգուրացիայի Փակեք SSH լեզվակը (tab)

Հիմնական գործողություններ 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;

Ժամանակային շարքեր.

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-ով

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