对于大规模并行处理数据库来说,一般由单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的分布、分区策略(概述)相关推荐

  1. kafka的分区策略(partition assignment strategy)

    概述 kafka的分区策略指的是producer端的 各个partition中的数据如何安排给consumer消费. Range(按范围) ange策略是对每个主题而言的,首先对同一个主题里面的分区按 ...

  2. 微软zone DNS服务器,DNS 策略概述

    DNS 策略概述 01/05/2021 本文内容 适用于:Windows Server 2022.Windows Server 2019.Windows Server 2016 可以使用本主题了解 D ...

  3. 数据表分区策略及实现

    转载自:https://blog.csdn.net/why_2012_gogo/article/details/51492573 数据表分区策略及实现(一): 什么是表分区?表分区其实就是将一张大数据 ...

  4. kafka 原理及分区策略

    一.简介 Apache Kafka 是一个分布式的流处理平台(分布式的基于发布/订阅模式的消息队列[Message Queue]). 流处理平台有以下3个特性: 可以让你发布和订阅流式的记录.这一方面 ...

  5. 关于“数据库分区策略”那点事儿

    大话数据分区 所谓数据分区,在不同的系统中有不同的称呼:例如ES中的shard,Hbase的region,Bigtable的tablet等等. 定义 分区:每一条数据(或者每条记录,每行,每个文档)只 ...

  6. cassandra框架模型之一——Colum排序,分区策略 Token,Partitioner bloom-filter,HASH

    转自:http://asyty.iteye.com/blog/1202072 一.Cassandra框架 二.Cassandra数据模型 Colum / Colum Family, SuperColu ...

  7. 大数据技术之kafka (第 3 章 Kafka 架构深入) 分区策略在分析

    如果不懂分区策略请看我之前的文章:https://blog.csdn.net/ywl470812087/article/details/105328015 默认的方式我们采用的是Range策略方式(按 ...

  8. kafka生产者消息分区策略

    前言 众所周知,kafka的topic具有分区的概念,生产者写入数据到kafka之后,涉及到数据到底写到哪个分区? 常用的分区写入策略 生产者写入消息到topic,Kafka将依据不同的策略将数据分配 ...

  9. MogDB与PostgreSQL分区策略语法测试

    点击上方"蓝字" 关注我们,享更多干货! 1.父子继承表 目前MogDB还不支持inherits继承特性. omm=# CREATE TABLE tab_t2(age int) i ...

最新文章

  1. 海思3536:osdrv编译过程中报错及解决方法
  2. Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展
  3. OkapiBarcode生成条形码
  4. 或有资产(contingent asset)
  5. iis7配置php-7,PHP--Windows 7 +IIS7配置
  6. python日志配置文件解释_python 之 logger日志 字典配置文件
  7. DataGrid中加入CheckBox,并实现单选 选择自 listhome 的 Blog
  8. IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了! | 原力计划
  9. [北航软工]技术规格说明书
  10. react router 路由守卫_React-router 路由守卫
  11. 二阶魔方万能还原公式_二阶魔方复原玩法
  12. shell实现加密压缩文件自动解压
  13. FireShot在windows2000上安装的问题
  14. 挑逗新兴科技创业圈兴奋中枢,保险极客“百万医疗”搞事情
  15. moment常用函数
  16. 教你怎样用Python进行语音识别!非常精准!
  17. linux命令——ll详解
  18. 计算机输入出设备课件,《电脑输入设备》PPT课件.ppt
  19. Android-Rxjava 常用操作符
  20. 用php做一个网站,如何用PHP开发一个完整的网站

热门文章

  1. 前端开发常见的浏览器兼容性问题?
  2. hutool 自定义excel_Hutool Java 工具类库导出 Excel,超级简单!
  3. android 使用c 代码实现,JNI开发实现helloworld,调用自己的C代码实现(1)
  4. 移动优先的响应式布局
  5. fatal error C1083: 无法打开预编译头文件:“Debug\a.pch”:No such file or directory
  6. 如何调整自定义标签样式
  7. 3.0 C++远征:is a
  8. node模块函数图解
  9. 分类器是如何做检测的?——CascadeClassifier中的detectMultiScale函数解读
  10. Silverlight + WCF异步调用 例子