odps下的表分区解释

分区字段一般来说都是重复性非常强的字段,比如说时间,某一天可能会产生几万条数据,把这一天产生的数据就存入到一个分区中,而时间(某天)就是分区字段,时间(某天)所在的列就是分区列。也就是说,基于分区列的数据作为一个纬度,进行了数据块的划分存储,加快查询速度。每一个分区块里面的数据是完整性的,而不是分区列里的一列或者几列数据。在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...的文件夹,这些文件夹里面存的是一条一条的数据,只不过数据都是基于时间和地域纬度的。想清楚了,就是一层窗户纸的事情。

时间: 2024-11-02 05:29:41

odps下的表分区解释的相关文章

MaxCompute( 原ODPS)下的表分区解释

大数据计算服务(MaxCompute,原名 ODPS,https://www.aliyun.com/product/odps)是一种快速.完全托管的 GB/TB/PB 级数据仓库解决方案.MaxCompute 向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全. ODPS分区字段一般来说都是重复性非常强的字段,比如说时间,某一天可能会产生几万条数据,把这一天产生的数据就存入到一个分区中,而时间(某天)就是分区字段,时

zabbix进行数据库备份以及表分区的方法_Linux

由于测试环境上面使用的zabbix服务器配置比较低,经常会遇到性能瓶颈(主要是数据库和磁盘I/O等),于是倒逼我使用了一些方式来缓解这些问题. 主要是以前使用的那个备份数据库的脚本是对zabbix数据库进行全备的,使用的又是mysql自带的工具mysqldump,当数据量大了之后进行全备所花的时间比较长,这样将会造成数据库的锁读...从而使zabbix服务以为mysql死掉了,产生一大堆的报警. 后来发现原来造成数据库数据量大量增加的是zabbix数据库中的一些存储数据的大表导致的.于是备份数据

SQL Server 表分区(partitioned table/Data Partitioning)

server Partitioned Table 可伸缩性性是数据库管理系统的一个很重要的方面,在SQL Server 2005中可伸缩性方面提供了表分区功能. 其实对于有关系弄数据库产品来说,对表.数据库和服务器进行数据分区的从而提供大数据量的支持并不是什么新鲜事,但 SQL Server 2005 提供了一个新的体系结构功能,用于对数据库中的文件组进行表分区.水平分区可根据分区架构,将一个表划分为几个较小的分组.表分区功能是针对超大型数据库(从数百吉字节到数千吉字节或更大)而设计的.超大型数

MySQL数据库表分区注意事项总结

1.分区列索引约束 若表有primary key或unique key,则分区表的分区列必须包含在primary key或unique key列表里,这是为了确保主键的效率,否则同一主键区的东西一个在A分区,一个在B分区,显然会比较麻烦. 2.各分区类型条件 range 每个分区包含那些分区表达式的值位于一个给定的连续区间内的行.这些区间要连续且不能相互重叠 list只支持整形字段或返回整形数的表达式,每个分区列表里的值列表必须整数 hash类型只支持整形字段或返回整形数的表达式 key类型只支

MySQL的表分区

一.什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区.当然也可根据其他的条件分区.   二.为什么要对表进行分区 为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率. 分区的一些优点包括:       1).与单个磁盘或文件系统分区相比,可以存储更多的数据.       2).对于那些已经失去保存意义的数据,通常可以通过删除

藏在表分区统计信息背后的小秘密

曾令军 云和恩墨技术专家,8年数据库运维经验.思维敏捷,擅长于数据库开发.解决棘手的数据库故障和性能问题,在数据库故障诊断.运维监控.性能优化方面积累了丰富的经验. 本文由一个表分区统计信息没有按预期更新的问题,逐步深入设疑.探因.求实,解开关于表分区统计信息收集的秘密.曲径通幽处,禅房花木深.让我们打开数据库知识的那扇窗,去看到花木浓茂幽静自然的美好. 案例背景 客户的业务系统中,做了AB表设计.A代表日间业务表,只存放一天的交易数据:B代表历史数据表,每天一个分区.每天晚上A表的所有数据会转

MySQL架构优化实战系列3:定时计划任务与表分区

一  定时计划任务 1.概论 mysql计划任务可以定时更新数据库表或者做大文件的汇总表. 2.配置 开启计划任务 SHOW VARIABLES LIKE 'event_scheduler' 查看是否开启 off 表示未开启 set global event_scheduler =1 此次重启之后的mysql器件生效 永久生效   可见已经开启 3.语法体 4.周期或者时间点语法 每1秒执行 on schedule every 1 second 10天后执行 on schedule at cur

MySQL的表分区详解_Mysql

一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区.当然也可根据其他的条件分区. 二.为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率.分区的一些优点包括:      1).与单个磁盘或文件系统分区相比,可以存储更多的数据.      2).对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的

深入分析mysql数据库表分区

什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区.当然也可根据其他的条件分区. 为什么要对表进行分区 为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率. 分区的一些优点包括: 1).与单个磁盘或文件系统分区相比,可以存储更多的数据. 2).对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那