GP数据库-Creenplum

news/2024/7/9 22:25:55 标签: big data, postgresql, 数据库

GP数据库与Oracle数据库区别为:侧重不同、数据库类型不同、查询不同。

一、侧重不同

1、GP数据库:GP数据库重计算的,对大数据集进行统计分析的OLAP类型。

2、Oracle数据库:Oracle数据库面向前台应用,重吞吐和高并发的OLTP类型。

二、数据库类型不同

1、GP数据库:GP数据库数据库类型为分布式数据库

2、Oracle数据库:Oracle数据库数据库类型为传统关系型数据库

三、查询不同

1、GP数据库:GP数据库支持海量数据存储,支持列的扩展,查询速度快,但是查询操作较复杂。

2、Oracle数据库:Oracle数据库虽然可以搭建集群,但是当数据量达到一定限度之后,查询处理速度会变得很慢,且对机器性能要求很高。

GP数据库是业界最快最高性价比的关系型分布式数据库,它在开源的PostgreSQL的基础上采用MPP架构(Massive Parallel Processing,海量并行处理),具有强大的大规模数据分析任务处理能力,其主要关注在数据仓库和商业智能方面。

分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库

GP数据库特点:

1.greenplum 是一个关系型数据库集群,是由数个独立的数据库服务组合成的逻辑数据库

2.greenplum采用Shared-Nothing架构,整个集群由很多个数据节点(Segment Sever)和控制节点(master server)组成,其中每个数据节点上可以运行多个数据库。简单来说,Shared-Nothing是 一个分布式的架构,每个节点相对独立。在典型的Shared-Nothing中,每一个节点上所有的资源(CPU,内存,磁盘)都是独立的,每个节点都只有全部数据的一部分,也只能使用本节点的资源

Greenplum架构
在这里插入图片描述
数据库由Master Severs和Segment Severs通过Interconnect互联组成。

Master Severs:Greenplum数据库系统的入口。建立与客户端的连接和管理;SQL的解析并形成执行计划(explain);执行计划将工作负载分发给其它数据库实例(segment实例),由它们存储和处理数据 。通常有primary Master和standby master两者之间通过同步进程,standby master保持与primary master中的数据一致。当primary Master出故障时热备份,standby master担任全部工作。Greenplum interconnect负责不同PostgreSQL实例之间的通信,支持TCP UDP。Greenplum segment是独立的PostgreSQL数据库,每个segment存储一部分数据。大部分查询处理都由segment完成,用户不能直接存取访问。

由于GP数据库中存放数据是多个独立的Greenplum segment,那数据怎么分配到对应的Greenplum segment上呢?主要使用分布和分区。

分布:是从物理上把数据分散到各个SEGMENT上,Greennplum提供两种分布策略:

hash分布和随机分布。
在这里插入图片描述

  1. Hash分布。指定一个和多个分布键,计算hash值,并且通过hash值路由到特定的Segment节点上,语法为Distributed by(…)。如果不指定分布键,默认将表中第一个字段作为分布键。

  2. 随机分布,也叫平均分布。数据随机分散在每一个节点中,这样无论数据是什么内容,都可

以平均分布在每个节点。语法为在表字段定义的后面加上Distributed randomly。

注:

1.采用随机分布策略的表默认将主键或唯一键作为分布键,如果指定的分布键与主键不一样,那么分布键会被更改为主键。

2.gp的分布键主要功能就是为了避免数据倾斜

分区:
segment内部按照规则将数据组织在一起,有助于提高数据查询性能,利于数据仓库的维护工作。删除分区会删除分区下的所有数据。分区后会产生主表和分区表.

主表:包含所有数据的表
分区表:一部分数据的表

Greenplum数据库支持:1.范围分区:基于一个数字型范围划分数据,例如按照日期或价格划分。2.列表分区:基于一个值列表划分数据,例如按照销售范围或产品线划分。3.两种类型的组合。


http://www.niftyadmin.cn/n/691168.html

相关文章

WPF 带刻度的滑动条实现

本章讲述&#xff1a;带刻度的水平滑动条实现&#xff1b;主要通过修改Slider的样式实现。 样式主要代码 <Style x:Key"SliderRepeatButtonStyle_Horiz" TargetType"{x:Type RepeatButton}"><Setter Property"OverridesDefaultStyle"…

python爬虫抓站的一些技巧总结

使用python爬虫抓站的一些技巧总结&#xff1a;进阶篇 一、gzip/deflate支持现在的网页普遍支持gzip压缩&#xff0c;这往往可以解决大量传输时间&#xff0c;以VeryCD的主页为例&#xff0c;未压缩版本247K&#xff0c;压缩了以后45K&#xff0c;为原来的1/5。这就意味着抓取速…

parallels desktop 16 联网启动脚本_Parallels Desktop 16 联网失败和不能连接USB设备解决方法...

Parallels Desktop 16 在最新的macOS Big Sur 11.0系统上无法联网&#xff0c;并且无法连接USB设备。之前解决联网的办法是在终端通过命令启动 parallels desktop 的方法解决联网的问题&#xff0c;但是相对比较麻烦&#xff0c;而且还是无法解决Parallels Desktop 16 不能连接…

C# 文件上传到七牛云服务器(二)

本章讲述&#xff1a;C# 中调用七牛云提供的SDK&#xff0c;实现文件分片上传、支持断点续上传、暂停/继续、进度回调显示 文件简单上传讲解&#xff0c;请查看&#xff1a;C# 文件上传到七牛云服务器&#xff08;一&#xff09; 地址为&#xff1a; 开发流程步骤地址&#…

ci mysql join_CI框架数据库查询之join用法分析

本文实例讲述了CI框架数据库查询之join用法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;用 A表中的每个ID 去查询这个 ID 在 people 表中的信息。语句如下&#xff1a;$this->db->from(A);$this->db->join(B, sites.id B.id);用 A表中的每个ID 去查询…

js中如何将object转化为json数据,json数据转js对象

js对象转json数据: JSON.stringify(); json数据转js对象: JSON.parse(); 用JOSN.stringify()转换出来是string格式&#xff0c;有什么方法能转出json格式 var obj str.parseJSON(); var obj eval(( str )); var obj JSON.parse(str): 三种任意一种

一个清华老师的一番话,感觉写得很好

http://blog.csdn.net/wojiushiwo987/article/details/7463511一双鞋&#xff0c;耐克的6百多&#xff1b;李宁的4百多&#xff1b;特步的3百多&#xff1b;361的2百多&#xff1b;所以&#xff0c;你毕业于一个什么样的大学很重要。   一双鞋&#xff0c;在地摊不过几十元&a…

C# 七牛云文件断点续下载

本章讲述&#xff1a;在WPF中&#xff0c;使用“HttpWebRequest”类&#xff0c;通过“HTTP”传输协议&#xff0c; 实现文件下载到本地目录&#xff1b;主要功能有&#xff1a;文件流写入、文件读取、暂停/继续下载、下载进度回调。 流程&#xff1a;首先判断文件是否存在&am…