第一个是MC的内部表, 第二个是外部表, 通过 insert OVERWRITE table *********** select * from ********* 写入外部表数据, 数据量大约膨胀在5倍左右 源表的分区,数据是存储在MC上使用的是aliorc存储引擎, 大小7G左右, 写入外部文件到OSS中,生成了很多个文件, 每个文件大小2G左右,总和在40G左右
问题原因
odps存储本身就是有压缩的,一般是5倍的压缩能力,数据释放同步到外部数据源如果完全不压缩的情况下数据扩增几倍属于正常现象
解决方案
可以改用ORC方式压缩
补充说明
内存溢出调整参数参考
加上
set odps.stage.mapper.mem = 2048;
set odps.stage.mapper.jvm.mem = 4096;
或者:java heap space OOM:调整如下flag优化
set odps.sql.executionengine.batch.rowcount=64; // 默认1024
set odps.sql.udf.jvm.memory=4096; // 默认1024
set odps.sql.mapper.memory=8192; // 默认1024
set odps.stage.mapper.mem=8192; // 默认1024
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。