すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for ClickHouse:HTTPS経由でApsaraDB for ClickHouseクラスターに接続する

最終更新日:Oct 17, 2024

HTTPS経由でApsaraDB for ClickHouseクラスターに接続できます。 このトピックでは、HTTPS経由でApsaraDB for ClickHouseクラスターに接続する方法について説明します。

前提条件

  • HTTPS経由で接続できるのは、バージョン20.8以降のApsaraDB for ClickHouseクラスターのみです。

  • HTTPSが有効になり、必要なSSL認証局 (CA) 証明書がダウンロードされます。 詳細については、「HTTPSの有効化」をご参照ください。

  • 接続元のIPアドレスがApsaraDB for ClickHouseクラスターのホワイトリストに追加されます。 詳細については、「ホワイトリストの設定」をご参照ください。

  • 接続元とApsaraDB for ClickHouseクラスターが異なる仮想プライベートクラウド (VPC) にデプロイされている場合、パブリックエンドポイントはApsaraDB for ClickHouseクラスターで使用できます。

注意事項

  • ApsaraDB for ClickHouseクラスターをHTTPSで接続すると、ネットワーク接続の応答時間が長くなります。

  • ApsaraDB for ClickHouseクラスターがHTTPS経由で接続されると、CPU使用率が増加します。 インターネットを使用し、ビジネスでデータの暗号化が必要な場合は、HTTPSを使用してApsaraDB for ClickHouseに接続することを推奨します。 VPCは安全です。 ほとんどの場合、VPCを使用している場合、ApsaraDB for ClickHouseに接続するためにHTTPSを使用する必要はありません。

接続にJava JDBCを使用する

  1. Eclipseなどの統合開発環境 (IDE) ツールを使用してMavenプロジェクトを作成し、ApsaraDB for ClickHouse for JDBCドライバーが提供する依存関係をインストールします。

    <dependency>
      <groupId>ru.yandex.clickhouse</groupId>
      <artifactId>clickhouse-jdbc</artifactId>
      <version>0.3.1</version>
    </dependency> 
  2. アプリケーションのコードを記述します。 ApsaraDB for ClickHouseの接続オブジェクトを取得します。

    構文:

    public void run()
            throws InterruptedException {
    
        final ClickHouseProperties clickHouseProperties = new ClickHouseProperties();
        clickHouseProperties.setSslRootCertificate("<Path of the certificate>");
        clickHouseProperties.setSsl(true);
        clickHouseProperties.setSslMode("<SSL Mode. Valid values: strict and none>");
        clickHouseProperties.setUser("<Database account>");
        clickHouseProperties.setPassword("<Password of the database account>");
        clickHouseProperties.setSocketTimeout(<Timeout period. Unit: milliseconds>);
      	ClickHouseDataSource dataSource = new ClickHouseDataSource("jdbc:clickhouse://<Public endpoint, VPC endpoint, or IP address>:<HTTPS port number>/<Name of the database>?ssl=true", clickHouseProperties);
        try {
            final ClickHouseConnection conn = dataSource.getConnection();
            conn.createStatement().executeQuery("select now()");
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }
    説明

    IPアドレスを使用してApsaraDB for ClickHouseクラスターに接続する場合、接続元とApsaraDB for ClickHouseクラスターが同じVPCにデプロイされ、SSL Modeの値がnoneに設定されている必要があります。

    例:

    public void run()
            throws InterruptedException {
    
        final ClickHouseProperties clickHouseProperties = new ClickHouseProperties();
        clickHouseProperties.setSslRootCertificate("/user/ck-root-ClickHouse-CA-Chain.pem");
        clickHouseProperties.setSsl(true);
        clickHouseProperties.setSslMode("strict");
        clickHouseProperties.setUser("test");
        clickHouseProperties.setPassword("123456Aa");
        clickHouseProperties.setSocketTimeout(2 * 3600 * 1000);
       	ClickHouseDataSource dataSource = new ClickHouseDataSource("jdbc:clickhouse://cc-****.public.clickhouse.ads.aliyuncs.com:8443/test01?ssl=true", clickHouseProperties);
        try {
            final ClickHouseConnection conn = dataSource.getConnection();
            conn.createStatement().executeQuery("select now()");
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }

接続にカールを使用する

構文:

curl --cacert <Path of the certificate> https://<Public endpoint or VPC endpoint>:<HTTPS port number>/ping

例:

curl --cacert ./ck-root-ClickHouse-CA-Chain.pem https://cc-bp163l724nkf****.clickhouse.ads.aliyuncs.com:8443/ping