原文链接:
http://click.aliyun.com/m/25142/
摘要: 本文我们将通过对有同样数据量、表结构除分区列其他都一模一样的表,从查询计算、写入、删除数据几个简单操作进行对比,了解MaxCompute分区表和非分区表在使用上有什么差异。 在介绍之前,需要大家先了解MaxCompute分区的概念。
本文我们将通过对有同样数据量、表结构除分区列其他都一模一样的表,从查询计算、写入、删除数据几个简单操作进行对比,了解MaxCompute分区表和非分区表在使用上有什么差异。
在介绍之前,需要大家先了解MaxCompute分区的概念。
数据准备
分区表:取公共数据集中的表dwd_prouduct_house_basic_info_out(二手房产数据集);
非分区表:执行建表语句:
create table dwd_prouduct_house_basic_info_out_npt as select * from public_data.dwd_prouduct_house_basic_info_out;
创建表的同时将源表的所有数据都复制到新表dwd_prouduct_house_basic_info_out_npt中。
由于create table … as select …语句创建的表不会复制分区属性,只会把源表的分区列作为目标表的一般列处理,所以新表dwd_prouduct_house_basic_info_out_npt为非分区表。
可以分别执行select count(*) from public_data.dwd_prouduct_house_basic_info_out; 和 select count(*) from dwd_prouduct_house_basic_info_out_npt;查看这两个表的记录数会是一样。
本次操作表的记录数为1147676063条。
计算对比
我们执行一个简单的查询某个分区数据的job:
Select * from public_data.dwd_prouduct_house_basic_info_out where ds= '20170113';--分区表查询
Select * from dwd_prouduct_house_basic_info_out_npt where ds= '20170113';--非分区表查询
计算时长对比
计算资源充足的情况下进行操作。
分区表里查询使用时间1秒,:
image
直接在对应分区中取出该分区所有数据。
非分区里表查询:
加上job等待时间共1分15秒
image
真正执行时长53秒
image
需要在整个表1147676063条记录中取出满足条件的数据。
image
计算费用对比
我们可以直接通过大数据开发套件->“数据开发”工作区中的“成本估计”对两条查询语句进行费用预估,该预估功能采用的计费公式可参考“计量计费->I/O后付费”。
若采用计算预付费模式,可不用在意该计算费用。
下图是通过成本估计功能预估的费用,结果显示在非分区表中查询一样条件的数据会花费更多,当然最终花费还得看最后的账单。
image
table size对比
由于MaxCompute存储压缩比不一定完全一致,两个表数据在MaxCompute的size也会有一定的差异。
desc public_data.dwd_prouduct_house_basic_info_out;分区表执行结果如下图:
image
desc dwd_prouduct_house_basic_info_out_npt; 非分区表执行结果如下图:
image
写入对比
创建三个表,表结构除了分区列,其他都一致:
非分区表,
create table house_test_npt(house_id string , house_total_price string , house_unit_price string , house_type string , house_floor string , house_direction string , house_deckoration string , house_area string , house_community_name string , house_region string , house_city string, ds string)
以时间为分区的分区表
create table house_test_pt_1(house_id string , house_total_price string , house_unit_price string , house_type string , house_floor string , house_direction string , house_deckoration string , house_area string , house_community_name string , house_region string , house_city string ) partitioned by ( ds string)
以时间为一级分区,城市为二级分区的分区表
原文链接:
http://click.aliyun.com/m/25142/
分享到:
相关推荐
BLOG_如何将一个普通表转换为分区表.pdfBLOG_如何将一个普通表转换为分区表.pdf
分区表的修复分区表的修复分区表的修复分区表的修复
《JCR期刊影响因子及分区情况》是由中国科学院文献情报中心按年度和学科根据SCI期刊的影响因子对SCI期刊进行4个等级划分的分区表。 目前SCI核心库有3762种期刊,扩展库(网络版)有6089种期刊,SCI库的期刊质量和...
使用分区表的主要目的,是为了改善大型表以及具有各种访问模式的表的可伸缩性和可管理性。 大型表:数据量巨大的表。 访问模式:因目的不同,需访问的不同的数据行集,每种目的的访问可以称之为一种访问模式...
主要介绍了oracle普通表转化为分区表的方法,官方给出了四种操作方法,本文主要对第四种方法进行详细分析,需要的朋友可以参考下。
官方给出的指导意见是:当表的大小超过了数据库服务器的物理内存大小则应当使用分区表,接下来结合一个例子具体记录一下创建分区表的详细过程。 创建分区表 首先看一下需求,现在有一张日志表,现在需要按表中的操作...
一个大型表的分区表改造方案以及详细步骤。
db2分区表在线迁移 db2分区表在线迁移 db2分区表在线迁移
深入浅出硬盘分区表深入浅出硬盘分区表深入浅出硬盘分区表
硬盘分区表详解 硬盘分区表详解 硬盘分区表详解 硬盘分区表详解
恢复分区表问题恢复分区表问题恢复分区表问题恢复分区表问题
CW M301Hv300分区表.rar
我自己做的一个表格,基于海思hi3516C板子,MTD分区表。对于一些不会怎么修改内核大小以及文件大小后,怎么调整MTD表很有帮助哦。
易我分区表医生--重建损毁的分区表,带注册文件
硬盘分区表详解硬盘分区表详解硬盘分区表详解硬盘分区表详解
Hash分区是Oracle实现表分区的三种基本分区方式之一。对于那些无法有效划分分区范围的大表,或者出于某些特殊考虑的设计,需要使用Hash分区,下面介绍使用方法
魔百和M301H_CW2的分区表信息,救砖需要用的下载后自己根据信息建分区表。
《易我分区表医生》是一款修复硬盘分区的软件,使用该工具可以轻易的恢复删除和丢失的分区。下面,我们就来看看如何使用它对我们的分区表等进行修复。
Oracle分区表详解 大家可以参考下 网上找的资料共享一下
oracle expdp impdp 分区表重映射导出导入 数据迁移方案,以SI01用户为例子,将用户分区表导出后,将分区表重映射到新的表空间,完成数据迁移和检查。照方案例子按步去做,一定能成功。