您可以通過HTTPS協議訪問雲資料庫ClickHouse。本文介紹如何通過HTTPS協議串連雲資料庫ClickHouse叢集。
前提條件
注意事項
通過HTTPS協議串連雲資料庫ClickHouse叢集會增加網路連接回應時間。
通過HTTPS協議串連雲資料庫ClickHouse叢集會顯著增加CPU使用率,建議您在使用外網且有加密需求時,使用HTTPS協議訪問雲資料庫ClickHouse。使用VPC網路相對安全,一般無需使用HTTPS協議訪問雲資料庫ClickHouse。
Java JDBC方式串連
使用Eclipse或其他IDE工具建立Maven專案並引入ClickHouse驅動依賴包。
<dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.3.1</version> </dependency>
編寫應用程式代碼。擷取Clickhouse連線物件。
文法如下。
public void run() throws InterruptedException { final ClickHouseProperties clickHouseProperties = new ClickHouseProperties(); clickHouseProperties.setSslRootCertificate("<憑證路徑>"); clickHouseProperties.setSsl(true); clickHouseProperties.setSslMode("<SSL Mode,取值:strict、none>"); clickHouseProperties.setUser("<資料庫帳號>"); clickHouseProperties.setPassword("<資料庫帳號的密碼>"); clickHouseProperties.setSocketTimeout(<逾時時間,單位:毫秒>); ClickHouseDataSource dataSource = new ClickHouseDataSource("jdbc:clickhouse://<外網地址、VPC地址或IP地址>:<HTTPS連接埠號碼>/<資料庫名稱>?ssl=true", clickHouseProperties); try { final ClickHouseConnection conn = dataSource.getConnection(); conn.createStatement().executeQuery("select now()"); } catch (Throwable e) { e.printStackTrace(); } }
說明如果通過IP地址串連,串連源和雲資料庫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命令列方式串連
文法如下。
curl --cacert <憑證路徑> https://<外網地址或VPC地址>:<HTTPS連接埠號碼>/ping
樣本如下。
curl --cacert ./ck-root-ClickHouse-CA-Chain.pem https://cc-bp163l724nkf****.clickhouse.ads.aliyuncs.com:8443/ping