分区字段一般来说都是重复性非常强的字段,比如说时间,某一天可能会产生几万条数据,把这一天产生的数据就存入到一个分区中,而时间(某天)就是分区字段,时间(某天)所在的列就是分区列。也就是说,基于分区列的数据作为一个纬度,进行了数据块的划分存储,加快查询速度。每一个分区块里面的数据是完整性的,而不是分区列里的一列或者几列数据。在odps中最多支持六级分区。也就是说partition by里面可以有六个字段可以设置为分区列,而且是有顺序的。比如说有两个分区列,sale_date和region , 那么这个表可能存在多少个分区呢?可能无数个,分区分为几级呢,两级。第一级为销售时间,第二级为区域。
Create table sale_detail(shop_name string, customer_id string , total_price decimal) partition by(sale_date string, region string);
Alter table sale_detail add partition (sale_date = ‘201703’, region=’hangzhou’);
其实可以理解更加简单一些,就是有个叫sale_detail的文件夹,下面存了一堆201703,201704...的文件夹,201703这个文件夹下面又存了一堆hangzhou、beijing、qingdao...的文件夹,这些文件夹里面存的是一条一条的数据,只不过数据都是基于时间和地域纬度的。想清楚了,就是一层窗户纸的事情。
相关文章
- 03-22myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- 03-22pandas对excel遍历读取与填充:涉及多张表的保存、NAN的类型处理、NAN的处理(str类型下)
- 03-22iOS表分区头和表视图的编辑模式
- 03-22无法重新组织表 "ty_wf_ex_local_process_info" 的索引 "idx_prc_act_id" (分区 1),因为已禁用页级锁定。
- 03-22总结Qt下样式表使用的规则及使用
- 03-22创建在特定模式下的表
- 03-222021-6-30 [转载] ::before 和:after 中双冒号和单冒号有什么区别?解释一下这 2 个伪元素的作用
- 03-22MBR分区表的备份与还原
- 03-22SYSAUX表空间占用过大情况下的处理(AWR信息过多)
- 03-22.Net下你不得不看的分表分库解决方案-多字段分片