(1)docker安装clickhouse:
配置docker-compose.yml如下
version: "2"
services:
server:
image: clickhouse/clickhouse-server:22.8
container_name: clickhouse
expose:
- 9000
- 8123
- 9009
ports:
- "8123:8123"
- "9000:9000"
- "9009:9009"
ulimits:
nproc: 65535
nofile:
soft: 262144
hard: 262144
environment:
- TZ=Asia/Shanghai
# - CLICKHOUSE_USER=root
# - CLICKHOUSE_PASSWORD=123456
volumes:
- ./data:/var/lib/clickhouse
关于compose文件的配置可以参考官方文档: docs.docker.com/compose/com…
当然除了compose,也可以通过docker pull的方式:
clickhouse的tag: hub.docker.com/r/clickhous…
(为使用方便,这里没有配置密码,最好配置密码,)
- 通过docker-compose.yml文件来run容器:
docker-compose up -d
- 进入名字为clickhouse容器:
docker exec -it clickhouse /bin/bash
- 在容器起来后我们可以进入 ClickHouse 的交互式终端
clickhouse-client
- 顺利进入client后,我们就可以各种优雅操作了
sql语法参考官方文档: clickhouse.com/docs/en/sql…
这里是建了一个helloworld.my_first_table表,插入了几条测试数据
配置结束后可先测试本地是否能访问:http://localhost:8123 ---> ok(即成功)
(2)JDBC连接
和连接其他数据库类似
添加maven依赖:
<dependency>
<groupId>com.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.4.0</version>
<!-- use uber jar with all dependencies included, change classifier to http for smaller jar -->
<classifier>all</classifier>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
写个简单测试类:
public void connectJdbc() throws Exception {
String url = "jdbc:clickhouse:http://localhost:8123";
Class.forName("com.clickhouse.jdbc.ClickHouseDriver"); //load driver
try {
Connection conn = DriverManager.getConnection(url, "default", "");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from helloworld.my_first_table");
while (rs.next()) {
System.out.println(rs.getString(2));
}
} catch (Exception e) {
throw e;
}
}
还有其他连接方式可以参考官方文档:clickhouse.com/docs/en/int…