VK Cloud logo

Қызмет данасына қосылу

Cloud ClickHouse екі протокол бойынша қосылымдарды қабылдайды: TCP және HTTP. Сервис данасына қосылым өзіне қол қойылған TLS сертификаты арқылы қорғалған.

Нұсқаулықта clickhouse-client (терминалдан қосылу үшін) және Python, Java, C++ және Go драйверлері (қолданба кодынан қосылу үшін) арқылы қосылу мысалдары келтірілген.

Қосылуға дайындық

  1. VK Cloud жеке кабинетіне өтіңіз.

  2. Data PlatformСервис даналары бөліміне өтіңіз. Қажетті Cloud ClickHouse данасының күйі Белсенді екенін тексеріңіз.

  3. Сервис данасының Жалпы ақпарат қойындысындағы қажетті қосылым жолынан протоколға (TCP немесе HTTP) және TLS шифрлауының болуына қарай хост пен портты көшіріңіз.

  4. Дерекқор атауын, сондай-ақ Cloud ClickHouse пайдаланушы тіркелгісінің логині мен құпиясөзін дайындаңыз. Бұл мына пайдаланушылардың бірі болуы мүмкін:

Келесі әрекеттер қосылу әдісіне байланысты:

Әр қосылу мысалын орындағаннан кейін Cloud ClickHouse нұсқасы көрсетіледі.

clickhouse-client

clickhouse-client Cloud ClickHouse данасына TCP арқылы қосылуға мүмкіндік береді. Дана нұсқасымен бірдей клиент нұсқасын пайдалану ұсынылады. Ең төменгі талап — нұсқаның алғашқы екі саны сәйкес келуі: 24.3.18.7 нұсқасындағы дана үшін 24.3.0.0 немесе одан жоғары клиентті, 25.3.14.14 нұсқасы үшін 25.3.0.0 немесе одан жоғары клиентті пайдаланыңыз.

  1. Қажетті нұсқаның пакетін жүктеп алыңыз:

  2. Клиентті ClickHouse ресми құжаттамасындағы нұсқауларды орындау арқылы орнатыңыз.

  3. Терминалды ашып, TLS арқылы қосылыңыз:

    $ clickhouse-client \   --host=<ХОСТ> \   --port=<ПОРТ> \   --user='<ЛОГИН>' \   --password='<ПАРОЛЬ>' \   --secure \   --accept-invalid-certificate

    TLS-сіз қосылу үшін --secure және --accept-invalid-certificate флагтарын алып тастаңыз.

  4. Тест сұранысын орындау арқылы қосылымды тексеріңіз:

    SELECT version();

Python

Python арқылы қосылу үшін драйверді пайдаланыңыз:

  • clickhouse-connect — HTTP бойынша қосылу. Ұсынылатын нұсқа — 1.6.0. Ең төменгі — 1.0.0.
  • clickhouse-driver — TCP бойынша қосылу. Ұсынылатын нұсқа — 0.2.11. Ең төменгі — 0.2.0.
  1. Терминалды ашыңыз және драйверді орнатыңыз:

    $ pip install clickhouse-connect==1.6.0
  2. TLS арқылы Cloud ClickHouse-ге қосылу үшін команданы орындаңыз:

    import clickhouse_connectclient = clickhouse_connect.get_client(    host='<ХОСТ>',    port='<ПОРТ>',    username='<ЛОГИН>',    password='<ПАРОЛЬ>',    database='<БД>',    secure=True,    verify=False)print(client.command('SELECT version()'))

    TLS-сіз қосылу үшін secure=True және verify=False параметрлерін алып тастаңыз.

Java

Java арқылы HTTP протоколы бойынша қосылу үшін clickhouse-jdbc JDBC драйверін пайдаланыңыз.

Ұсынылатын драйвер нұсқасы — 0.9.8. Ең төменгі — 0.7.0.

  1. Жобаға тәуелділікті қосыңыз:

    <dependency>    <groupId>com.clickhouse</groupId>    <artifactId>clickhouse-jdbc</artifactId>    <version>0.9.8</version></dependency>
  2. TLS арқылы Cloud ClickHouse-ге қосылу үшін команданы орындаңыз:

    import com.clickhouse.jdbc.ClickHouseDataSource;String url = "jdbc:clickhouse://<ХОСТ>:<ПОРТ>/<БД>?ssl=true&sslmode=NONE";Properties props = new Properties();props.setProperty("user", "<ЛОГИН>");props.setProperty("password", "<ПАРОЛЬ>");ClickHouseDataSource ds = new ClickHouseDataSource(url, props);try (Connection conn = ds.getConnection();     Statement stmt = conn.createStatement();     ResultSet rs = stmt.executeQuery("SELECT version()")) {    if (rs.next()) {        System.out.println(rs.getString(1));    }}

    TLS-сіз қосылу үшін URL-мекенжайдан ?ssl=true&sslmode=NONE параметрлерін алып тастаңыз.

C++

C++ арқылы TCP бойынша қосылу үшін clickhouse-cpp клиенттік кітапханасын пайдаланыңыз.

Ұсынылатын кітапхана нұсқасы — 2.6.0.

  1. Терминалды ашыңыз және clickhouse-cpp кітапханасын орнатыңыз, мысалы, бастапқы кодтан:

    $ git clone --branch v2.6.0 https://github.com/ClickHouse/clickhouse-cpp.git$ mkdir clickhouse-cpp/build && cd clickhouse-cpp/build$ cmake ..$ make$ sudo make install
  2. TLS арқылы Cloud ClickHouse-ге қосылу үшін команданы орындаңыз:

    #include <clickhouse/client.h>clickhouse::Client client(    clickhouse::ClientOptions()        .SetHost("<ХОСТ>")        .SetPort("<ПОРТ>")        .SetUser("<ЛОГИН>")        .SetPassword("<ПАРОЛЬ>")        .SetDefaultDatabase("<БД>")        .SetSSLOptions(clickhouse::ClientOptions::SSLOptions()            .SetSkipVerification(true)));clickhouse::Block block;client.Select("SELECT version()", &block);if (block.GetRowCount() > 0) {    std::cout << block[0]->As<clickhouse::ColumnString>()->At(0) << std::endl;}

    TLS-сіз қосылу үшін .SetSSLOptions(...) әдісін ClientOptions() шақырулар тізбегінен алып тастаңыз.

Go

Go арқылы TCP немесе HTTP бойынша қосылу үшін clickhouse-go драйверін пайдаланыңыз.

Ұсынылатын драйвер нұсқасы — 2.48.0. Ең төменгі — 2.0.0.

  1. Терминалды ашыңыз және драйверді орнатыңыз:

    $ go get github.com/ClickHouse/clickhouse-go/v2@v2.48.0
  2. TLS арқылы Cloud ClickHouse-ге қосылу үшін команданы орындаңыз:

    package mainimport (    "database/sql"    "fmt"    "log"    _ "github.com/ClickHouse/clickhouse-go/v2")func main() {    conn, err := sql.Open("clickhouse", "clickhouse://<ЛОГИН>:<ПАРОЛЬ>@<ХОСТ>:<ПОРТ>/<БД>?secure=true&skip_verify=true")    if err != nil {        log.Fatal(err)    }    defer conn.Close()    var version string    if err := conn.QueryRow("SELECT version()").Scan(&version); err != nil {        log.Fatal(err)    }    fmt.Println(version)}

    TLS-сіз қосылу үшін қосылым жолынан secure=true&skip_verify=true параметрлерін алып тастаңыз.

Мақала пайдалы болды ма?