本帖最后由 牵网线的 于 2024-2-29 18:58 编辑  
 
一、通过删除表分区的方式 
- ##查询某表分区
 
 - clickhouse :) select database,table,partition,name, bytes_on_disk  from system.parts where table='ck_test';
 
  
- ┌─database─┬─table┬─partition─┬─name────┬─bytes_on_disk─┐
 
 - │ default  │ ck_test │ 202402    │ 202402_3_3_0 │           221 │
 
 - │ default  │ ck_test │ 202401    │ 202401_4_4_0 │           232 │
 
 - └──────────┴────────────────────┴───────────┴
 
  
- ##删除某表分区
 
 - clickhouse :) alter table ck_test1 drop partition 202401;
 
  复制代码 
二、执行delete方式 
该方式为异步执行,并非实时。 
- ## DELETE操作
 
 - -- 删除记录
 
 - alter table ck_table01 delete where id='1';
 
 
  复制代码 
三、执行truncate方式 
truncate适用于删除全表数据的情况,而且效率比DELETE更高。 
- truncate table default.ck_table01;
 
  复制代码 
四、设置表数据生命周期 
- --设置ck_table01的TTL为30分钟
 
 - create table default.ck_table01
 
 - (
 
 - id Int64,
 
 - name Nullable(String),
 
 - address Nullable(String),
 
 - create_date Date
 
 - )
 
 - ENGINE = MergeTree
 
 - PARTITION BY toYYYYMM(create_date)
 
 - ORDER BY id
 
 - TTL toDate(create_date) + toIntervalMinute(30)
 
 
  复制代码 
toIntervalMinute:n分钟过期 
toIntervalDay:n天过期 
toIntervalMonth:n月过期 
 
五、删除数据文件目录 
clickhouse数据目录和元数据目录是分开的,所以删除数据目录文件并不影响表结构。下面以清空全部表数据为例。 
1、停止clickhoue数据库 
- systemctl stop clickhouse-server
 
  复制代码 
2、删除数据文件目录 
- rm -rf /opt/clickhouse/data/default/
 
  复制代码 
3、启动clickhouse数据库 
- systemctl start clickhouse-server
 
  复制代码 |