MaxCompute —【存储_压缩操作】

压缩方案

说明:压缩前后请务必进行数据测试对比,确保数据压缩前后一致。
对比工具:https://datacompare.alibaba-inc.com/#/home


原理说明
在默认情况夏,数据是按照写入时间顺序存储的,这样物理上相邻的数据其实相似性并不高。在当前列存储当道的大背景下,如果让某个人/设备的数据在物理上相邻,就能够用20%的代价达到80%的数据存储优化效果。【desc extended <table_name>;】
实现步骤
重分布需要针对已有的表,重新创建一个任务,对历史数据进行压缩处理,以保障不影响当前任务产出。建议当天进行重分布的分区统一设置5天前,通过日调度每天实现对之前任务的重分布写入。历史分区的数据,可以通过补数据实现。
压缩任务一定要设置在下午或者晚上运行,避免需要使用动态分区对生产任务产出造成影响。
动态分区会影响重分布的效果,尽量使用静态分区,如果需要用动态分区可以增加如下操作:

set odps.sql.reshuffle.dynamicpt=false
distribute by <动态分区key> <reorder key>
sort by <动态分区key> <reorder key>
set odps.sql.joiner.memory=4096;
set odps.sql.mapper.split.size=2048;
set odps.sql.reducer.memor=4096;
set odps.sql.allow.adaptive.data.distribution=true;
set odps.adaptive.shuffle.desired.partition.size=2048;
重分布逻辑
distribute by col1
sort by col1,col2,col3

经过以上操作可在原表进行压缩,并通过重跑历史数据将历史数据进行压缩


如果需要直接压缩,只需要设置参数运行一次即可:

ALTER TABLE table_name SET TBLPROPERTIES("storagestrategy"="archive")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值