跳转至

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引擎, 分区策略, 数据写入与合并