ClickHouse建表教程:从创建到数据分区与优化全解析
原文地址: https://88box.top 生成时间: 2026-05-21 01:03:44
clickhouse建表 - hey99 知识搜索引擎
精选文章
clickhouse建表
建表完成后在 /var/lib/clickhouse/data 中就能看到 tablename 和 数据存放的具体位置。
更新于 2026-05-20 16:37
clickhouse
建表
建表语句
CREATE TABLE learning.t_web_hits
(
timestamp DateTime,
user_id UInt64,
url String,
os String,
browser String,
duration_ms UInt32
)
ENGINE
=
MergeTree
(
)
PARTITION BY toYYYYMM
(
timestamp
)
ORDER BY
(
timestamp, user_id
)
;
用时间做的分区(YYYYMM)
表结构位置
建表完成后在 /var/lib/clickhouse/data 中就能看到 tablename 和 数据存放的具体位置
t_web_hits -
..
/
..
/store/dea/dead2f17-de72-4497-8244-4851c975d4db
写入数据
insert
into
learning
.
t_web_hits
values
(
now
(
)
,
1001
,
'/page/a'
,
'ios'
,
'Safair'
,
1500
)
,
(
now
(
)
,
1002
,
'/page/b'
,
'windows'
,
'Safair'
,
3000
)
,
(
now
(
)
,
1001
,
'/page/c'
,
'ios'
,
'Safair'
,
5000
)
;
查看数据
分区文件
在看看文件夹
10:25 202605_1_1_0
这个是分区文件
我再插入一条 其他时间段的数据
insert
into
learning
.
t_web_hits
values
(
'2027-08-25'
,
1001
,
'/page/a'
,
'ios'
,
'Safair'
,
1500
)
;
202605_1_1_0
202708_2_2_0
可以看到多了一个 202708_2_2_0 的分区
分区合并
再执行一下
insert
into
learning
.
t_web_hits
values
(
now
(
)
,
1001
,
'/page/c'
,
'ios'
,
'Safair'
,
5000
)
;
可以看到多了一个分区 ,而不是在 202605_1_1_0 插入
以后ch会把这2个分区合并
也可以手动做合并
optimize table learning
.
t_web_hits
;
合并后 多出一个 202605_1_3_1 文件夹
以后clickhouse读取202605的数据就找这个文件夹
后台定期会清除旧的文件夹
查看原文
🏷 标签: ClickHouse, 建表语法, MergeTree引擎, 分区策略, 数据写入与合并