clickhouse 笔记

环境搭建

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

连接数据库

image-20220610221343151

填写配置信息

image-20220610221452245

数据库不填则可查看所有数据库

新建数据库

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:

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念