Docker安装单机clickhouse(简单记录)

348 阅读1分钟

参考博客:

juejin.cn/post/707302…

juejin.cn/post/706819…

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