前言
clickhouse数据库清理数据的方式很多,每种方式都各有自己的优缺点,请根据实际需要采用适合自己的方式,下面逐一介绍。
一、通过删除表分区的方式
- ##查询某表分区
- ck001 :) select database,table,partition,name, bytes_on_disk from system.parts where table='ck_test1';
- ┌─database─┬─table┬─partition─┬─name────┬─bytes_on_disk─┐
- │ default │ ck_test1 │ 202302 │ 202302_3_3_0 │ 221 │
- │ default │ ck_test1 │ 202301 │ 202301_4_4_0 │ 232 │
- └──────────┴────────────────────┴───────────┴
- ##删除某表分区
- ck001 :) alter table ck_test1 drop partition 202301;
复制代码 二、执行delete方式
该方式为异步执行,并非实时。- ## DELETE操作
- -- 删除记录
- alter table ck_table01 delete where id='11';
- -- 删除分片表数据
- alter table ck_table01 on cluster main_cluster where create_date>< '2023-02-02 15:00:00';
复制代码 三、执行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
复制代码 总结
方法三、五将清理全部数据,请确保数据安全,根据实际场景谨慎应用。
到此这篇关于clickhouse数据库删除数据的五种方式的文章就介绍到这了,更多相关clickhouse删除数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://www.jb51.net/database/316970qce.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|