gp的分布、分区策略(概述)
对于大规模并行处理数据库来说,一般由单master与多segment组成。
那么数据表的单行会被分配到一个或多个segment上,此时需要想一想分布策略
分布
在gp6中,共有三个策略:
哈希分布
随机分布
复制分布
哈希分布
就是对分布键进行hash,这样相同值的key始终散列到同一个segment上。如果选择唯一的分布键,将确保较均匀的数据分布。
要使用这一策略,需要在创建表使用 “DISTRIBUTED BY(column,[…])” 子句。
随机分布
将数据行按顺序依次发送到各个segment,此时具有相同值的数据行不一定位于同一个segment上。随机分布保证了数据的平均分布,但是性能显然不如hash
复制分布
gp会将每行数据分配到每个segment上,此策略下,表数据将均匀分布,每个segment存储同样的数据行。
当在segment上执行用户自定义函数且需要访问表中所有行时,此时需要用到此策略。
接下讲解分区概念
分布时对存储的数据进行物理划分,分区是逻辑划分。
分区将大表从逻辑上划分为多个子表,分区不会更改表数据在segment之间的物理分布。
分区
gp支持以下分区类型:
1、范围分区:根据数字范围,如日期或价格
2、列表分区:基于值列表的数据划分,如销售地区或者产品线
3、两种类型的组合
对大表分区可以简化数据库维护以及提高查询性能,例如通过对时间分区,可以将旧数据滚动移除出数据库。
但是创建过多的分区可能会拖慢管理和维护的速度,如清理,恢复segment,扩展集群等情况。
除非优化器可以通过查询谓词修剪分区,否则分区将不会提高查询性能。
依次扫描各个分区表的查询会比只需扫描无分区的根表要慢。所以当查询中很少使用分区裁剪的话,尽量避免对表分区。
参考
Greenplum数据分布和分区策略
gp的分布、分区策略(概述)相关推荐
- kafka的分区策略(partition assignment strategy)
概述 kafka的分区策略指的是producer端的 各个partition中的数据如何安排给consumer消费. Range(按范围) ange策略是对每个主题而言的,首先对同一个主题里面的分区按 ...
- 微软zone DNS服务器,DNS 策略概述
DNS 策略概述 01/05/2021 本文内容 适用于:Windows Server 2022.Windows Server 2019.Windows Server 2016 可以使用本主题了解 D ...
- 数据表分区策略及实现
转载自:https://blog.csdn.net/why_2012_gogo/article/details/51492573 数据表分区策略及实现(一): 什么是表分区?表分区其实就是将一张大数据 ...
- kafka 原理及分区策略
一.简介 Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列[Message Queue]). 流处理平台有以下3个特性: 可以让你发布和订阅流式的记录.这一方面 ...
- 关于“数据库分区策略”那点事儿
大话数据分区 所谓数据分区,在不同的系统中有不同的称呼:例如ES中的shard,Hbase的region,Bigtable的tablet等等. 定义 分区:每一条数据(或者每条记录,每行,每个文档)只 ...
- cassandra框架模型之一——Colum排序,分区策略 Token,Partitioner bloom-filter,HASH
转自:http://asyty.iteye.com/blog/1202072 一.Cassandra框架 二.Cassandra数据模型 Colum / Colum Family, SuperColu ...
- 大数据技术之kafka (第 3 章 Kafka 架构深入) 分区策略在分析
如果不懂分区策略请看我之前的文章:https://blog.csdn.net/ywl470812087/article/details/105328015 默认的方式我们采用的是Range策略方式(按 ...
- kafka生产者消息分区策略
前言 众所周知,kafka的topic具有分区的概念,生产者写入数据到kafka之后,涉及到数据到底写到哪个分区? 常用的分区写入策略 生产者写入消息到topic,Kafka将依据不同的策略将数据分配 ...
- MogDB与PostgreSQL分区策略语法测试
点击上方"蓝字" 关注我们,享更多干货! 1.父子继承表 目前MogDB还不支持inherits继承特性. omm=# CREATE TABLE tab_t2(age int) i ...
最新文章
- 海思3536:osdrv编译过程中报错及解决方法
- Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展
- OkapiBarcode生成条形码
- 或有资产(contingent asset)
- iis7配置php-7,PHP--Windows 7 +IIS7配置
- python日志配置文件解释_python 之 logger日志 字典配置文件
- DataGrid中加入CheckBox,并实现单选 选择自 listhome 的 Blog
- IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了! | 原力计划
- [北航软工]技术规格说明书
- react router 路由守卫_React-router 路由守卫
- 二阶魔方万能还原公式_二阶魔方复原玩法
- shell实现加密压缩文件自动解压
- FireShot在windows2000上安装的问题
- 挑逗新兴科技创业圈兴奋中枢,保险极客“百万医疗”搞事情
- moment常用函数
- 教你怎样用Python进行语音识别!非常精准!
- linux命令——ll详解
- 计算机输入出设备课件,《电脑输入设备》PPT课件.ppt
- Android-Rxjava 常用操作符
- 用php做一个网站,如何用PHP开发一个完整的网站
热门文章
- 前端开发常见的浏览器兼容性问题?
- hutool 自定义excel_Hutool Java 工具类库导出 Excel,超级简单!
- android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)
- 移动优先的响应式布局
- fatal error C1083: 无法打开预编译头文件:“Debug\a.pch”:No such file or directory
- 如何调整自定义标签样式
- 3.0 C++远征:is a
- node模块函数图解
- 分类器是如何做检测的?——CascadeClassifier中的detectMultiScale函数解读
- Silverlight + WCF异步调用 例子