insert into select 错误请教
卫书有道 发布于2021-06 浏览:2690 回复:4
0
收藏
最后编辑于2021-06

insert into xx select * from T1 partition p20210606

如上,insert into select 一个表的分区p20210606,分区总数据为 58.674 GB。Buckets 为10 副本数为3。集群20个BE实例

然后报错:Memory exceed limit. New partitioned Aggregation in spill Backend: xx.xx.xx.xx(ip), fragment: 684d172c941345ab-ac6929bd4b9a5977 Used: 32210695296, Limit: -1. You can change the limit by session variable exec_mem_limit.

我 exec_mem_limit设置的是30GB。请教下,insert 操作为什么会在这么大内存的情况下报单个BE内存不足呢?

收藏
点赞
0
个赞
共4条回复 最后由卫书有道回复于2021-06
#5卫书有道回复于2021-06
#4 Ling缪回复
「或者我把数据导出再stream load 导入比前面的方法会更快?」 insert into 确实有性能没有 broker load 好。以你的数据量58GB 的话就比较慢,而且可能还会超时。 我的建议是,把insert into 后面的数据拆分一下。分成 10G 左右一份可能会好很多。
展开

非常感谢~我试下

0
#4Ling缪回复于2021-06

「或者我把数据导出再stream load 导入比前面的方法会更快?」

insert into 确实有性能没有 broker load 好。以你的数据量58GB 的话就比较慢,而且可能还会超时。

我的建议是,把insert into 后面的数据拆分一下。分成 10G 左右一份可能会好很多。

0
#3卫书有道回复于2021-06
#2 Ling缪回复
insert into 是一个单点的操作,所以存在你说的这个问题。 其次是,你集群是什么版本的?
展开

感谢回复,我的版本是:0.12-RC3。

另外,按您说的,insert into select 是单点操作,是不是就有性能问题。那我除了这个方式还有别的方法吗?(insert into select 是在组一个宽表)或者我把数据导出再stream load 导入比前面的方法会更快?

0
#2Ling缪回复于2021-06

insert into 是一个单点的操作,所以存在你说的这个问题。

其次是,你集群是什么版本的?

0
快速回复
TOP
切换版块