开发者社区> 问答> 正文

数据读写入外部表存储有变化

已解决

第一个是MC的内部表, 第二个是外部表, 通过 insert OVERWRITE table *********** select * from ********* 写入外部表数据, 数据量大约膨胀在5倍左右 源表的分区,数据是存储在MC上使用的是aliorc存储引擎, 大小7G左右, 写入外部文件到OSS中,生成了很多个文件, 每个文件大小2G左右,总和在40G左右

展开
收起
阿里云服务支持 2022-12-05 09:54:39 161 0
1 条回答
写回答
取消 提交回答
  • 官方回答

    问题原因

    odps存储本身就是有压缩的,一般是5倍的压缩能力,数据释放同步到外部数据源如果完全不压缩的情况下数据扩增几倍属于正常现象

    image.png

    解决方案

    可以改用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

    2022-12-05 10:07:06
    赞同 展开评论 打赏
问答分类:
来源圈子
更多
收录在圈子:
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载