前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >phoenix填坑记6:MutationState size of 512000 isbigger than max allowed size of 500000

phoenix填坑记6:MutationState size of 512000 isbigger than max allowed size of 500000

作者头像
源哥
发布2021-12-23 14:59:08
8010
发布2021-12-23 14:59:08
举报
文章被收录于专栏:源哥的专栏源哥的专栏

在清空Phoenix表的时候,发现报异常信息:MutationState size of 512000 isbigger than max allowed size of 500000

上面这句话的意思,就是说删除的数据量超过50万,太大,不允许删除,而这边使用Phoenix表,目的就是存放大数据表,如果不能删除超过50万的数据,将导致使用极其不方便,这里就具体讲解解决方案。

之所以有这个报错,是因为我们采用了Phoenix的轻量级客户端queryserver,删除的操作是在queryserver上执行的,有缓存大小限制。

下面语句可以设置删除的最大条数,可以解决该问题:

代码语言:javascript
复制
val connectionProperties = new Properties()
//默认的500000,改成最大删除2千万
connectionProperties.setProperty("phoenix.mutate.maxSize", "20000000")

connection = PhoenixThinClientUtil.getConnection(connectionProperties)

不过,实际上设置条数太大,删除时超过缓存限制,仍然会报错,另外,非常严重的问题是,删除动作非常缓慢,1千万的记录要删除好久。还有,Phoenix还有限制,可能无法完成删除干净,留下少量数据是可能的。

由于我的表是每天都要情况,重新刷一般数据,所以在代码中先drop表,然后重新create表,速度要快很多,运行几个月,都非常稳定。

drop表语句如下,注意要加上 IF EXISTS,避免表不存在时抛异常:

代码语言:javascript
复制
drop table IF EXISTS t_test
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

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