欢迎投稿

今日深度:

clickhouse数据库删除数据的五种方式,

clickhouse数据库删除数据的五种方式,


目录
  • 前言
  • 一、通过删除表分区的方式
  • 二、执行delete方式
  • 三、执行truncate方式
  • 四、设置表数据生命周期
  • 五、删除数据文件目录
  • 总结

前言

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删除数据内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

您可能感兴趣的文章:
  • Clickhouse数据表、数据分区partition的基本操作代码
  • Clickhouse系列之整合Hive数据仓库示例详解
  • clickhouse 批量插入数据及ClickHouse常用命令详解
  • MySQL 到 ClickHouse 实时数据同步实操

www.htsjk.Com true http://www.htsjk.com/shujukunews/47683.html NewsArticle clickhouse数据库删除数据的五种方式, 目录 前言 一、通过删除表分区的方式 二、执行delete方式 三、执行truncate方式 四、设置表数据生命周期 五、删除数据文件目录 总结 前言 clickhou...
评论暂时关闭