MaxCompute 存储优化技巧-阿里云开发者社区

开发者社区> 隐林> 正文

MaxCompute 存储优化技巧

简介: 文章转自duzhuan本文主要介绍一些ODPS表操作的优化技巧,通过这些技巧,可以有效节省ODPS存储空间和计算量。 合理设置分区表 ODPS支持分区表的概念,分区表指的是在创建表时指定的partition的分区空间,即指定表内的某几个字段作为分区列。在大多数情况下,用户可以将分区类比为文件系统
+关注继续查看

文章转自duzhuan

本文主要介绍一些ODPS表操作的优化技巧,通过这些技巧,可以有效节省ODPS存储空间和计算量。

合理设置分区表

ODPS支持分区表的概念,分区表指的是在创建表时指定的partition的分区空间,即指定表内的某几个字段作为分区列。在大多数情况下,用户可以将分区类比为文件系统下的目录。 ODPS将分区列的每个值作为一个分区(目录)。用户可以指定多级分区,即将表的多个字段作为表的分区,分区之间正如多级目录的关系。在使用数据时如果指定了需要访问的分区名称,则只会读取相应的分区,避免全表扫描,提高处理效率,降低费用。
比如:create table src (key string, value bigint) partitioned by (pt string);,使用select * from src where pt='20160901';指定正确的分区格式,ODPS在生成查询计划时只会将’20151201’分区的数据纳入输入中。如果没有指定分区,比如select * from src where key = ‘MaxCompute’;查询计划会扫描全表数据。
常见的分区设置方式有根据日期或者地区(国家),也可以根据业务需要自行设置。
ODPS支持多级分区,比如

create table if not exists sale_detail(
    shop_name     string,
    customer_id   string,
    total_price   double)
    partitioned by (sale_date string,region string);

创建一个二级分区表,第一级分区sale_date是日期,第二级分区region是地区。

设置合理的表生命周期

ODPS平台中存储资源是非常宝贵的。可以根据数据本身的使用情况,对表设置生命周期,ODPS会及时删除超过生命周期的数据,达到节省存储空间的目的。比如create table test3 (key boolean) partitioned by (pt string, ds string) lifecycle 100; 创建一张生命周期为100的表。如果这张表或者分区的最后修改时间超过了100天将会被删掉。需要注意的是生命周期是以分区为最小单位的,所以一个分区表,如果部分分区达到了生命周期的阀值,那么这些分区会被直接删掉,未达到生命周期阀值的分区不受影响。
另外可以通过命令 alter table table_name set lifecycle days;修改已经创建好的表的生命周期。

数据重新分布

ODPS表是数据的集合,也就是说不同的数据分布表对ODPS来说是等价的。但是在实际存储中,不同数据分布对压缩算法的友好度也很大差别。下图是我们对一张表针对不同列进行排序的结果,在不同的数据分布的情况下,压缩效果差距还是相当大的。
_2016_09_14_10_15_24
一般说来,每个表中都有存在1个或几个对存储空间影响比较的字段,这些字段就是影响压缩效果的关键。目前看来,平均字段长度,唯一值个数是两个极其关键的参考值。


欢迎加入“数加·MaxCompute购买咨询”钉钉群(群号: 11782920)进行咨询,群二维码如下:

96e17df884ab556dc002c912fa736ef6558cbb51 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解密OpenTSDB的表存储优化
本篇文章会详细讲解OpenTSDB的表结构设计,在理解它的表结构设计的同时,分析其采取该设计的深层次原因以及优缺点。它的表结构设计完全贴合HBase的存储模型,而表格存储(TableStore、原OTS)与HBase有类似的存储模型,理解透OpenTSDB的表结构设计后,我们也能够对这类数据库的存储
26426 0
Hive Tunning(二)优化存储
《Hive Tunning》读后小记第二篇——Hive Tunning(二)优化存储。
1425 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4382 0
高阶魔方与数据编排 - 数据库存储优化之路
标签 PostgreSQL , cluster , 预排 , 一维数据 , 多维数据 , 视觉编排 , 数据编排 , IO优化 背景 中华文化源远流长,比如这句古语“远水不救近火,远亲不如近邻”,在数据库的优化中亦有体现。
1755 0
+关注
隐林
阿里云大数据产品专家,擅长MaxCompute、机器学习、分布式、可视化、人工智能等大数据领域;
288
文章
38
问答
来源圈子
更多
MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载