ClickHouse使用JDBC


ClickHouse支持標准的JDBC協議,底層基於HTTP接口通信,使用下面的Maven依賴,即可為JAVA程序引入官方提供的數據庫驅動包。

<dependency>

  <groupId>ru.yandex.clickhouse</groupId>

  <artifactId>clickhouse-jdbc</artifactId>

  <version>0.2.4</version>

</dependency>

該驅動有兩種使用方式:

1.標准形式

標准形式是比較常用的方式,通過JDK原生接口獲取連接,其關鍵參數如下:

①JDBC Driver Class為ru.yandex.clickhouse.ClickHouseDriver;

②JDBC URL為jdbc:clickhouse://<host>:<port>[/<database>];

偽代碼:

//初始化驅動

Class.forName("ru.yandex.clickhouse.ClickHouseDriver");

//url

String url = "jdbc:clickhouse://ch5.nauu.com:8123/default";

//用戶名密碼

String user = "default";

String password = " ";

//登錄

Connect con = DriverManager.getConnection(url,username,password);

Statement stmt = con.createStateement();

//查詢

ResultSet rs = stmt.executeQuery(" SELECT 1");

rs.exec();

System.out.printf("res"+ re.getInt(1));

 

2.高可用模式

高可用模式允許設置多個Host地址,每次會從可用的地址中隨機選擇一個進行連接器URL聲明 格式如下:

jdbc:clickhouse: //<first-host>:<port>,<second-host>:<port>[,...]/<database>

在高可用模式下,需要通過BalancedClickhouseDataSource對象來獲取連接。

偽代碼:

//多個地址使用逗號分隔

String url1 = "jdbc:clickhouse://ch8.nauu.com:8123,ch5,nauu.com:8123/default";

//設置JDBC參數

ClickHouseProperties clickHouseProperties = new ClickHouseProperties();

clickHouseProperties.setUser("default");

//聲明數據源

BalancedClickhouseDataSource balabced = new BalancedClickhouseDataSource(url1,clickHouseProperties);

//對每個host進行ping 操作,排除不可用的dead連接

balanced.actualize();

//活的JDBC連接

Connection con = balanced.getConnection();

Statement stme = con.creatStatement();

 //查詢

ResultSet rs = stmt.executeQuery("SELECT 1,hostName()");

rs.next();

System.out.printIn("res"+rs.getInt(1)+"rs.getString(2)");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM