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的数据就找这个文件夹

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

相关推荐
简简单单就是我_hehe5 小时前
clickhouse内置函数和关键词总结
clickhouse
狼与自由7 小时前
clickhouse引擎
clickhouse·c#·linq
狼与自由1 天前
安装使用clickhouse
clickhouse
麦兜和小可的舅舅2 天前
ClickHouse 列管理机制解析:从 COW、IColumn 到 CRTP
c++·clickhouse
4t4run10 天前
1、clickhouse 安装
数据库·clickhouse
JackSparrow41411 天前
使用Elasticsearch代替数据库like以加快查询的各种技术方案+实现细节
大数据·clickhouse·elk·elasticsearch·搜索引擎·postgresql·全文检索
梦想与想象-广州大智汇18 天前
MySQL 同步数据到 ClickHouse 方案对比分析
数据库·mysql·clickhouse
Smile_25422041819 天前
clickhouse日志疯涨问题
linux·运维·服务器·clickhouse
计算机魔术师19 天前
【技术硬核 | 存储】ClickHouse 原理与 Langfuse 存储实践:当 LLM Trace 爆炸时,PG 还扛得住吗?
人工智能·clickhouse·工程实践·sbti·职场焦虑