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

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

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 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 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 սերվերի պատվիրումը

Այս ծրագրային ապահովումը տեղադրելու համար API-ի միջոցով հետևեք այս հրահանգներին։

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