首页 > 其他分享 >clickhouse 删除数据的几种常见的方式

clickhouse 删除数据的几种常见的方式

时间:2024-01-23 14:22:23浏览次数:27  
标签:ck 删除 几种 dev01 table 数据 clickhouse

clickhouse数据库清理数据的方式很多,各有自己的优缺点,正面介绍几种常见的方式。

一、执行delete方式

此种方式为异步执行,并不是实时的。

## DELETE操作
-- 删除记录
alter table ck_dev01 delete where id='33';
-- 删除分片表数据
alter table ck_dev01 on cluster main_cluster where create_date>< '2024-03-01 16:00:00';

二、通过删除表分区的方式

##查询表分区
ck :) select database,table,partition,name, bytes_on_disk  from system.parts where table='ck_dev1';

┌─database─┬─table┬─partition─┬─name────┬─bytes_on_disk─┐
│ default  │ ck_dev1 │ 202402    │ 202402_5_5_0 │           541 │
│ default  │ ck_dev1 │ 202401    │ 202401_6_6_0 │           265 │
└──────────┴────────────────────┴───────────┴

##删除表分区
ck :) alter table ck_dev1 drop partition 202402;

 

三、执行truncate方式

truncate适用于删除全表数据的情况,效率比DELETE更高。

truncate table default.ck_dev01;

四、设置表数据生命周期

--设置表ck_dev01的TTL为60分钟
create table default.ck_dev01
(
    id Int64,
    name Nullable(String),
    create_time Date
)
ENGINE = MergeTree
PARTITION BY toYYYYMM(create_time)
ORDER BY id
TTL toDate(create_time) + toIntervalMinute(60)

说明: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

备注:

1、truncate方式、删除数据文件目录方式会清理全部数据,一定要谨慎使用用。
2、删除数据文件目录方式需要停止CK进程,动作有点大

标签:ck,删除,几种,dev01,table,数据,clickhouse
From: https://www.cnblogs.com/xuzhujack/p/17982355

相关文章

  • 【Powershell】在 PowerShell 数组中添加和删除项
    在PowerShell数组中添加和删除项是一个可能会导致一些意外的报错,这里我把可用的办法总结一下。问题:创建一个数组,我们将记下System.Array类型:$Fruits="Apple","Pear","Banana","Orange"$Fruits.GetType()但是,如果我们尝试向数组添加或删除项目,则会出现“集合大小固定”的错误......
  • RabbitMq批量删除队列
    RabbitMq批量删除队列​ 由于部分公司同事使用RabbitMq时,没有将Client设置为autodelete,导致大量冗余队列。其中这些队列又是无routekey队列,收到了批量的订阅消息,占用服务器内存。​ 如何将这些无用的队列删除成为一个问题?经过多次摸索,在rabbitmqmanagementapi里面找到了方案:u......
  • 删除字典中的空值
    defremove_none_values_iterative(data):stack=[data]whilestack:current=stack.pop()ifisinstance(current,dict):forkey,valueinlist(current.items()):ifvalueisNone:......
  • ClickHouse安装
    一、Docker安装1. docker-compose配置文件version:"3"networks:rhxy-network:external:trueservices:clickhouse:image:clickhouse/clickhouse-server:23.12.2.59-alpinecontainer_name:clickhousehostname:clic......
  • PoE供电有哪几种标准?PoE供电网关有哪些?
    PoE供电目前有三种标准,分别是802.3af(PoE)、802.3at(PoE+)和802.3bt(PoE++)。 802.3af 是PoE功能的基础标准,它规定使用网线供电时,最大输出功率为15W。该标准通常使用4、5、7、8线对传输电流,其中4、5为正极,7、8为负极。 802.3at(PoE+)是PoE功能的增强型标准,规定的最大输出功率提高到......
  • DELETE 循环中删除某条数据
    *&---------------------------------------------------------------------**&ReportZZTEST*&---------------------------------------------------------------------**&*&-------------------------------------------------------------------......
  • Python 生成二维码的几种方式、生成条形码
    一:#生成地维码importqrcodeimportmatplotlib.pyplotaspltfrombarcode.writerimportImageWriter创建QRCode对象qr=qrcode.QRCode(version=1,error_correction=qrcode.constants.ERROR_CORRECT_L,box_size=10,border=4)设置二维码的数据data="Hello,world!"......
  • Git必知必会基础(06):分支创建、切换、更新、删除、拉取(fetch)
     简介分支就是版本上的更新送代,默认只有master主分支可以从主分支上分离出其他的分支,各分支间互不干扰每个项目,一般有多个分支,比如master(主干分支)、开发分支、测试分支、生产bug分支等等线上环境,一个项目也可能会有多个稳定分支同时在线上运行但是,分支越多,后期合并分支的成本越大,......
  • k8s_client-go 构建客户端的几种方式
    kubernetesclient-go构建客户端的几种方式packagecallk8simport( "context" "log" metav1"k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "k8s.io/client-go/t......
  • 「闲话随笔」【数据删除】考试题解
    「闲话随笔」【数据删除】考试题解点击查看目录目录「闲话随笔」【数据删除】考试题解T2T3T4T5T6T7T1T8T9被教练斩了.级部为啥不让公布分数?哦好像确实不该.咋四机房就我还没停whk,那我还挺高贵的.昨天中午saidtoFLORIZ:感觉现在是提前体验退役生活了,回班之后小测......