记删除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

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Linux命令rm如何删除名字以“-”开头的文件

《Linux命令rm如何删除名字以“-”开头的文件》Linux中,命令的解析机制非常灵活,它会根据命令的开头字符来判断是否需要执行命令选项,对于文件操作命令(如rm、ls等),系统默认会将命令开头的某... 目录先搞懂:为啥“-”开头的文件删不掉?两种超简单的删除方法(小白也能学会)方法1:用“--”分隔命

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

JAVA实现Token自动续期机制的示例代码

《JAVA实现Token自动续期机制的示例代码》本文主要介绍了JAVA实现Token自动续期机制的示例代码,通过动态调整会话生命周期平衡安全性与用户体验,解决固定有效期Token带来的风险与不便,感兴... 目录1. 固定有效期Token的内在局限性2. 自动续期机制:兼顾安全与体验的解决方案3. 总结PS