环境搭建
docker run -d --name clickhouse-server --ulimit nofile=262144:262144 clickhouse/clickhouse-server
将容器内config.xml拷贝至主机config目录
docker cp clickhouse-server:/etc/clickhouse-server/config.xml /data/clickhouse/config/config.xml
将容器内users.xml拷贝至主机config目录
docker cp clickhouse-server:/etc/clickhouse-server/users.xml /data/clickhouse/config/users.xmldefault用户配置
生成密码
# 随机生成密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
7I2bHFLv
a39ddb33bf9e57aaa208b0dd100c14f663125ccca7a356ab69fce7ed8ec97764
# 生成指定密码123456
echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
# 打开users.xml文件 default用户设置密码为123456
vim /data/clickhouse/config/users.xml
# 将文件中<password></password>改为以下内容
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
# 将default用户改为只读
# 将<profile>default</profile>改为以下内容
<profile>readonly</profile>
新增root用户
# 生成root用户密码123456
echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
# 打开users.xml文件
vim /data/clickhouse/config/users.xml
# 在</default>下一行添加以下内容
<root> <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</root>
删除临时容器
docker rm -f clickhouse-server
部署
docker run -d \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
-p 8123:8123 \
-p 9000:9000 \
-p 9009:9009 \
-v /data/clickhouse/data:/var/lib/clickhouse:rw \
-v /data/clickhouse/log:/var/log/clickhouse-server:rw \
-v /data/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml \
-v /data/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml \
yandex/clickhouse-server:latest
连接数据库
填写配置信息
数据库不填则可查看所有数据库
新建数据库
CREATE DATABASE IF NOT EXISTS sbfzl;
新建表的代码后面要自己加上;
CREATE TABLE sbfzl.t_user (
id VARCHAR(20),
username VARCHAR(50),
password VARCHAR(50)
);;
集成springboot
<dependency>
<groupId>ru.yandex.clickhouse</groupId>
<artifactId>clickhouse-jdbc</artifactId>
<version>0.2.4</version>
</dependency>
clickhouse没有主键,手动添加主键注解
@TableName(value ="t_user")
@Data
public class TUser implements Serializable {
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
}
yaml配置
# 应用名称
spring:
application:
name: clickhouse-demo
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: ru.yandex.clickhouse.ClickHouseDriver
url: jdbc:clickhouse://localhost:8123/sbfzl
username: default
password: