clickhouse建表

建表

建表语句

bash 复制代码
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 和 数据存放的具体位置

bash 复制代码
t_web_hits -> ../../store/dea/dead2f17-de72-4497-8244-4851c975d4db

写入数据

sql 复制代码
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);

查看数据

分区文件

在看看文件夹

powershell 复制代码
10:25 202605_1_1_0

这个是分区文件

我再插入一条 其他时间段的数据

sql 复制代码
insert into learning.t_web_hits values 
('2027-08-25',1001,'/page/a','ios','Safair',1500);
powershell 复制代码
202605_1_1_0
202708_2_2_0

可以看到多了一个 202708_2_2_0 的分区

分区合并

再执行一下

sql 复制代码
insert into learning.t_web_hits values 
(now(),1001,'/page/c','ios','Safair',5000);

可以看到多了一个分区 ,而不是在 202605_1_1_0 插入

以后ch会把这2个分区合并

也可以手动做合并

powershell 复制代码
optimize table learning.t_web_hits;

合并后 多出一个 202605_1_3_1 文件夹

以后clickhouse读取202605的数据就找这个文件夹

后台定期会清除旧的文件夹

相关推荐
l1t12 小时前
DeepSeek总结的将 Rust Delta Kernel 集成到 ClickHouse
数据库·clickhouse·rust
灰太狼!!3 天前
数仓、接口开发常用clickhouses函数详解
数据仓库·sql·clickhouse
敲代码的小小酥3 天前
ClickHouse集群原理解析
clickhouse
海南java第二人3 天前
ClickHouse 跨分片查询深度解析:一条 SQL 的完整执行之旅
clickhouse
海南java第二人6 天前
ClickHouse 基础概念面试通关指南:列式存储、TraceId与高频考点全解析
clickhouse·面试
海南java第二人6 天前
ClickHouse 自然语言统一查询:让数据对话成为现实
网络·数据库·clickhouse
海南java第二人6 天前
ClickHouse 部署模式完全指南:从单机到分布式集群的生产级选型
分布式·clickhouse
Altruiste9 天前
minikube 搭clickhouse 集群
clickhouse·kubernetes
zandy101110 天前
HENGSHI SENSE加速引擎架构深度解析:MPP列存与ClickHouse物化视图实战
clickhouse·架构·企业级bi·mpp列存
*勇往直前*10 天前
unbutu安装clickhouse,并且远程连接,使用教程,原理
clickhouse