前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >clickhouse如何删除大表

clickhouse如何删除大表

作者头像
July
发布2022-11-11 15:23:01
2.3K0
发布2022-11-11 15:23:01
举报
文章被收录于专栏:数据库干货铺数据库干货铺

clickhouse 在单表或单分区超过50GB时,将无法直接删除

1. 案例

模拟删除单表或单分区超过50GB时,删除报错的情况

1.1 一个表中超过50GB的分区

代码语言:javascript
复制
-- 删除分区的脚本如下
ALTER TABLE testdb.test DROP PARTITION (20220606,'12');

报错信息如下

代码语言:javascript
复制
Code: 359. DB::Exception: Received from localhost:9000. DB::Exception: Table or Partition in testdb.test was not dropped.
Reason:
1. Size (56.20 GB) is greater than max_[table/partition]_size_to_drop (50.00 GB)
2. File '/data/clickhouse/flags/force_drop_table' intended to force DROP doesn't exist
How to fix this:
1. Either increase (or set to zero) max_[table/partition]_size_to_drop in server config
2. Either create forcing file /data/clickhouse/flags/force_drop_table and make sure that ClickHouse has write permission for it.
Example:
sudo touch '/data/clickhouse/flags/force_drop_table' && sudo chmod 666 '/data/clickhouse/flags/force_drop_table'.

1.3 解决方法

报错信息中已给出解决方法:

1) 增大单表或单分区的可删除的大小

2) 通过执行脚本,强制删除

1.4 我们选择强制删除来解决

执行如下脚本

代码语言:javascript
复制
sudo touch '/data/clickhouse/flags/force_drop_table' && sudo chmod 666 '/data/clickhouse/flags/force_drop_table'

执行完毕以上脚本后即可删除分区

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据库干货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档