版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MadCode2222222222222/article/details/89955161
docker+centos7安装clickhouse
https://blog.csdn.net/MadCode2222222222222/article/details/89952043
pom.xml中添加:
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.1.40</version>
</dependency>
application.yml
clickhouse:
address: jdbc:clickhouse://192.168.159.128:8123
username: default
password:
db: default
socketTimeout: 600000
注意:ip为centos7虚拟器ip
ClickHouseUtil
package com.todd.clickhouse.utils;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import ru.yandex.clickhouse.ClickHouseConnection;
import ru.yandex.clickhouse.ClickHouseDataSource;
import ru.yandex.clickhouse.settings.ClickHouseProperties;
import java.sql.*;
import java.util.*;
@Component
public class ClickHouseUtil {
private static String clickhouseAddress;
private static String clickhouseUsername;
private static String clickhousePassword;
private static String clickhouseDB;
private static Integer clickhouseSocketTimeout;
@Value("${clickhouse.address}")
public void setClickhouseAddress(String address) {
ClickHouseUtil.clickhouseAddress = address;
}
@Value("${clickhouse.username}")
public void setClickhouseUsername(String username) {
ClickHouseUtil.clickhouseUsername = username;
}
@Value("${clickhouse.password}")
public void setClickhousePassword(String password) {
ClickHouseUtil.clickhousePassword = password;
}
@Value("${clickhouse.db}")
public void setClickhouseDB(String db) {
ClickHouseUtil.clickhouseDB = db;
}
@Value("${clickhouse.socketTimeout}")
public void setClickhouseSocketTimeout(Integer socketTimeout) {
ClickHouseUtil.clickhouseSocketTimeout = socketTimeout;
}
public static Connection getConn() {
ClickHouseConnection conn = null;
ClickHouseProperties properties = new ClickHouseProperties();
properties.setUser(clickhouseUsername);
properties.setPassword(clickhousePassword);
properties.setDatabase(clickhouseDB);
properties.setSocketTimeout(clickhouseSocketTimeout);
ClickHouseDataSource clickHouseDataSource = new ClickHouseDataSource(clickhouseAddress, properties);
try {
conn = clickHouseDataSource.getConnection();
return conn;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
测试:
@Test
public void creatTable() {
try {
Connection connection = ClickHouseUtil.getConn();
Statement statement = connection.createStatement();
statement.executeQuery("create table default.example(name String, age UInt8) Engine=Log");
} catch (SQLException e) {
e.printStackTrace();
}
}
未完待续。。。