记删除CK不彻底问题 及 新增表TTL机制

2023-12-16 13:28

本文主要是介绍记删除CK不彻底问题 及 新增表TTL机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题背景:对CK表进行删除时,发现无法彻底删除,并报错如下:

同时也会有下面的报错信息:

解决过程:

  1. 确认CK 节点是否健康存活,select * from system.clusters 可以查看;
  2. 确认CK元数据是否删除干净;如果未删除干净 需要清理;
  3. 确认Zookeeper 是否删除干净;如果未删除干净 需要清理,并重启 防止元数据还在内存中;记得一定要重启zk

如果是表中数据量过大,默认CK是将超过50G 删除会不生效;但CK 删除数据是异步的 并不会报错提示数据未删除失败;

这里有一种办法是找到ClickHouse安装目录下的配置文件,通常是/etc/clickhouse-server/config.xml。修改 并开启这两处配置,同时one by one 一台台节点修改重启,不建议大批量操作 防止业务数据查询受到影响。

重建表并添加TTL机制:

local表:

CREATE TABLE db_name.table_name_local on cluster ck_cluster_name (
`fdate` Int64 COMMENT '天分区', 
`s_hour` String COMMENT '数据小时', ...
`data_day`        String COMMENT '数据日期字符型'
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/table_name_local', '{replica}') 
PARTITION BY fdate ORDER BY (fdate, s_hour) 
TTL toDate(data_day) + toIntervalDay(7)
SETTINGS index_granularity = 8192, storage_policy = 'ssd_to_hdd' 

 all表:

CREATE TABLE db_name.table_name_local on cluster ck_cluster_name (`fdate` Int64 COMMENT '天分区', `s_hour` String COMMENT '数据小时', ...`data_day`        String COMMENT '数据日期字符型'
) ENGINE = Distributed(ck_cluster_name, db_name, table_name_local, rand())

附:常用CK SQL

-- 删除数据
ALTER TABLE db_name.table_name_local ON CLUSTER ck_cluster_name DELETE WHERE fdate<=20230915;
-- 清空数据
truncate table db_name.table_name_local ON CLUSTER ck_cluster_name;
-- 查看CK表存储大小及表中数据量并按倒序排序
select database,table,formatReadableSize(size) as size1 ,rowsfrom 
(
select database,table,sum(bytes) as size,sum(rows) as rows,min(min_date) as min_date,max(max_date) as max_date,sum(bytes_on_disk) as bytes_on_disk,sum(data_uncompressed_bytes) as data_uncompressed_bytes,sum(data_compressed_bytes) as data_compressed_bytes,(data_compressed_bytes / data_uncompressed_bytes) * 100 as compress_rate,max_date - min_date as days,size / (max_date - min_date) as avgDaySizefrom system.partswhere activegroup by database, table 
) a order by size desc;
-- 查询CK 近半年查询是次数
select table,cnt
from
(
select table,count(*) as cnt
from 
(
SELECT query, arrayJoin(extractAll(query, 'FROM\\s+(\\S+)\.(\\S+)')) as tableFROM system.query_logWHEREquery_start_time >= subtractMonths(now(), 6)  AND query LIKE 'SELECT %' ) a group by table
) b order by cnt desc limit 100;

参考文章:https://blog.csdn.net/weixin_43464964/article/details/117459652

这篇关于记删除CK不彻底问题 及 新增表TTL机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/500626

相关文章

PostgreSQL中MVCC 机制的实现

《PostgreSQL中MVCC机制的实现》本文主要介绍了PostgreSQL中MVCC机制的实现,通过多版本数据存储、快照隔离和事务ID管理实现高并发读写,具有一定的参考价值,感兴趣的可以了解一下... 目录一 MVCC 基本原理python1.1 MVCC 核心概念1.2 与传统锁机制对比二 Postg

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Redis过期删除机制与内存淘汰策略的解析指南

《Redis过期删除机制与内存淘汰策略的解析指南》在使用Redis构建缓存系统时,很多开发者只设置了EXPIRE但却忽略了背后Redis的过期删除机制与内存淘汰策略,下面小编就来和大家详细介绍一下... 目录1、简述2、Redis http://www.chinasem.cn的过期删除策略(Key Expir

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

github打不开的问题分析及解决

《github打不开的问题分析及解决》:本文主要介绍github打不开的问题分析及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、找到github.com域名解析的ip地址二、找到github.global.ssl.fastly.net网址解析的ip地址三