参考博客:
1、拉取镜像
docker pull yandex/clickhouse-server
若需要下载指定版本,可以使用如下
docker pull yandex/clickhouse-server:21.3.20
2、建一个挂载目录
mkdir -p /data/clickhouse
3、启动
docker run -d -p 8123:8123 -p 9000:9000 --name house --ulimit nofile=262144:262144 --volume=/data/clickhouse:/var/lib/clickhouse yandex/clickhouse-server
4、设置sha256哈希后的密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "123456"; echo -n "123456" | sha256sum | tr -d '-'
5、进入容器
docker exec -it house /bin/bash
安装vim
apt-get update
apt-get install vim -y
设置密码
vim /etc/clickhouse-server/users.xml
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
将光标移动到需要删除的行 按一下ESC键,确保退出编辑模式 按两次键盘上面的d键,就可以删除了。
i 进入vim编辑
shift + insert 粘贴
esc 退出编辑模式
:wq + enter 保存并退出
6、进入cilckhouse-client命令行,并执行命令
docer exec -it house /bin/bash
无密码进入命令行
clickhouse-client
有密码进入命令行
clickhouse-client --password 然后输入设置的明文密码进入命令行客户端
建库建表
create database if not exists house;
CREATE TABLE house.asset
(
user_id String,
order_id String,
currency String,
from_wallet UInt16,
to_wallet UInt16,
op_type UInt16,
amount Decimal128(18),
c_time UInt32
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(toDateTime(c_time))
ORDER BY (c_time)
SETTINGS index_granularity = 8192;
表结构
ENGINE = MergeTree() MergeTree系列表引擎的基础表引擎, 使用最为广泛;
PARTITION BY toYYYYMM(toDateTime(c_time)) 把时间戳转成年月日格式按月进行分区;
ORDER BY (c_time) ck是支持在插入表时就按照排序存储的; 注意, 如果没有指定 PRIMARY KEY, 则默认用排序字段作为主键;
SETTINGS index_granularity = 8192 索引粒度, 按默认的8192就行;
可以进入库use house查看表的结构desc asset