Anda dapat terhubung ke kluster ApsaraDB for ClickHouse menggunakan HTTPS. Topik ini menjelaskan langkah-langkah untuk terhubung ke kluster ApsaraDB for ClickHouse melalui HTTPS.
Prasyarat
Hanya kluster ApsaraDB for ClickHouse versi 20.8 atau lebih baru yang mendukung koneksi melalui HTTPS.
HTTPS telah diaktifkan, dan otoritas sertifikat SSL (CA) yang diperlukan telah diunduh. Untuk informasi lebih lanjut, lihat Aktifkan HTTPS.
Alamat IP sumber koneksi telah ditambahkan ke daftar putih kluster ApsaraDB for ClickHouse. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih.
Jika sumber koneksi dan kluster ApsaraDB for ClickHouse berada di virtual private cloud (VPC) yang berbeda, pastikan titik akhir publik tersedia untuk kluster ApsaraDB for ClickHouse.
Peringatan
Waktu respons jaringan meningkat saat kluster ApsaraDB for ClickHouse diakses melalui HTTPS.
Penggunaan CPU meningkat ketika kluster ApsaraDB for ClickHouse diakses melalui HTTPS. Jika Anda menggunakan Internet dan bisnis memerlukan enkripsi data, disarankan untuk menggunakan HTTPS saat terhubung ke ApsaraDB for ClickHouse. VPC aman, sehingga dalam banyak kasus, penggunaan HTTPS tidak diperlukan untuk terhubung ke ApsaraDB for ClickHouse jika VPC digunakan.
Gunakan Java JDBC untuk konektivitas
Gunakan alat lingkungan pengembangan terintegrasi (IDE) seperti Eclipse untuk membuat proyek Maven dan instal dependensi driver JDBC yang disediakan oleh ApsaraDB for ClickHouse.
<dependency> <groupId>ru.yandex.clickhouse</groupId> <artifactId>clickhouse-jdbc</artifactId> <version>0.3.1</version> </dependency>Tulis kode aplikasi Anda untuk mendapatkan objek koneksi ApsaraDB for ClickHouse.
Sintaksis:
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(); } }CatatanJika Anda terhubung ke kluster ApsaraDB for ClickHouse menggunakan alamat IP, sumber koneksi dan kluster ApsaraDB for ClickHouse harus berada di VPC yang sama, dan nilai
SSL Modeharus diatur kenone.Contoh:
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(); } }
Gunakan curl untuk konektivitas
Sintaksis:
curl --cacert <Path of the certificate> https://<Public endpoint or VPC endpoint>:<HTTPS port number>/pingContoh:
curl --cacert ./ck-root-ClickHouse-CA-Chain.pem https://cc-bp163l724nkf****.clickhouse.ads.aliyuncs.com:8443/ping