当前位置: 首页 > news >正文

GreenPlum简介

简介

  1. Greenplum是一家总部位于**美国加利福尼亚州,为全球大型企业用户提供新型企业级数据仓库(EDW)、企业级数据云(EDC)和商务智能(BI)提供解决方案和咨询服务的公司,在全球已有:纳斯达克,纽约证券交易所,Skype. FOX,T-Mobile;中国已有:中信实业银行东方航空公司阿里巴巴华泰保险,中国远洋(Cosco),李宁公司**等大型企业用户选择Greenplum的产品。
  2. 它的底层是基于开源的关系型数据库postgresql进行开发完成的
  3. Greenplum数据库是一种大规模并行处理(MPP)数据库服务器,其架构特别针对管理大规模分析型数据仓库以及商业智能工作负载而设计
  4. 当前使用的 OLTP程序中,用户访问一个中心数据库,如果采用SMP系统结构,它的效率要比采用MPP结构要快得多。而MPP系统在决策支持和数据挖掘方面显示了优势。

名词解释

  1. SMP与MPP
    1. SMP(Symmetric Multi-Processor)对称多处理器结构

      • 是指服务器中多个CPU对称工作,无主次或从属关系。
      • 各CPU共享相同的物理内存,每个 CPU访问内存中的任何地址所需时间是相同的,因此SMP也被称为一致存储器访问结构(UMA:Uniform Memory Access)
      • 对SMP服务器进行扩展的方式包括增加内存、使用更快的CPU、增加CPU、扩充I/O(槽口数与总线数)以及添加更多的外部设备(通常是磁盘存储)
      • SMP服务器的主要特征是共享,系统中所有资源(CPU、内存、I/O等)都是共享的。也正是由于这种特征,导致了SMP服务器的主要问题,那就是它的扩展能力非常有限
      • 对于SMP服务器而言,每一个共享的环节都可能造成SMP服务器扩展时的瓶颈,而最受限制的则是内存。由于每个CPU必须通过相同的内存总线访问相同的内存资源,因此随着CPU数量的增加,内存访问冲突将迅速增加,最终会造成CPU资源的浪费,使CPU性能的有效性大大降低
      • 在这里插入图片描述
    2. **MPP(Massively Parallel Processing)**大规模并行处理,是采用大量处理单元对问题进行求解的一种并行处理技术。是一种非共享架构,每个节点都有独立的操作系统和数据库等,节点之间信息交互只通过网络连接实现。简单的说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)

      • 每个节点内的CPU不能访问另一个节点的内存,节点之间的信息交互是通过节点互联网络实现的,这个过程称为数据重分配
      • MPP适合出来结构化的数据,尤其是复杂的结构化查询(复杂查询经常使用多表联查、全表扫描等,牵涉的数据量十分庞大)
      • 在这里插入图片描述
    3. 两种结构的比较: 与传统的SMP架构明显不同,通常情况下,MPP系统因为要在不同处理单元之间传送信息,所以它的效率要比SMP要差一点,但是这也不是绝对的,因为 MPP系统不共享资源,因此对它而言,资源比SMP要多,当需要处理的事务达到一定规模时,MPP的效率要比SMP好。这就是看通信时间占用计算时间的比例而定,如果通信时间比较多,那MPP系统就不占优势了,相反,如果通信时间比较少,那MPP系统可以充分发挥资源的优势,达到高效率。

  2. OLTP(联机事务处理)与 OLAP(联机分析处理)
    1. OLAP全称为OnlineAnalyticalProcessing,它强调对大量历史数据的分析与处理。它的主要功能包括查询、分析、预测、数据挖掘等,为用户提供灵活的数据分析和快速决策支持。比如greenplum数据库
    2. OLTP全称为OnlineTransactionProcessing,它强调对数据的实时处理。OLTP系统通常用于处理企业的日常交易数据,例如订单处理、库存管理、银行交易等。它的主要功能是支持事务和实时数据处理,为用户提供高效的交易处理服务。比如mysql数据库

架构

  1. 主从结构。greenplum采用一主(Master)多从(Segment)的结构,Master负责查询解析、优化及任务分发,Segment负责查询处理、数据存储,双方通过Interconnect通信。总体架构图如下
    在这里插入图片描述

  2. master节点

    • 是整个系统的控制中心和对外的服务接入点,它负责接收用户SQL请求,将SQL生成查询计划并进行并行处理优化,然后将查询计划分配(dispatch)到所有的Segment节点进行并行处理,协调组织各个Segment节点按照查询计划一步一步地进行并行处理,最后获取到Segment的计算结果,再返回给客户端;从用户的角度看Greenplum集群,看到的只是Master节点,无需关心集群内部的机制,所有的并行处理都是在Master控制下自动完成的。Master节点一般只有一个或两个(互为备份),主备方案实现高可用
    • master上不包含任何用户数据,数据只存在于segment之上
  3. segment节点

    • 是Greenplum执行并行任务的并行运算节点,它接收Master的指令进行MPP并行计算,因此所有Segment节点的计算性能总和就是整个集群的性能,通过增加Segment节点,可以线性化得增加集群的处理性能和存储容量,Segment节点可以是1~10000个节点,它的数量决定greenplum的算力,可通过横向扩容提升整个数据库的算力及性能
    • 一个节点上可以有多个实例(一个节点简单理解为一个主机)
    • 每个实例都有自己独立的数据目录,以磁盘文件的方式保存用户数据
  4. Interconnect

    • 是Master节点与Segment节点、Segment节点与Segment节点之间的数据传输组件,它基于千兆交换机或万兆交换机实现数据在节点间的高速传输

数据存储与分布

  1. 存储

    1. 在Greenplum中,用户数据可按某种策略分布到不同节点的Segment实例中,每个实例都有自己独立的数据目录,以磁盘文件的方式存储用户数据。为了更好的AP性能,Greenplum在支持行存储的基础上,支持列存储。同时为了适应更多的应用场景,支持Appendonly表(只能insert,不能update、delete的一种表, 可以消除每行中的更新可见性信息负担,这可以为每一行节约大概20字节)与外部表(csv等文件)。用户可根据需要灵活进行选择,采用不同的存储策略保存不同时间的数据,比如最近三个月的数据使用堆表存储,更老的数据使用列存储,一年以前的数据使用外部表的方式存储在HDFS中。 在这里插入图片描述
  2. Greenplum提供了以下三种数据分布策略

    • 哈希分布:Hash分布是Greenplum最常用的数据分布方式,根据用户的分布键计算后的哈希值将数据分布到某个Segment上。分布键的选择非常重要,好的分布键应将数据均匀分布到各Segment上,同时在用户查询时尽量减少重分布

      create table t1(id, int) DISTRIBUTED BY (id);
      
    • 随机分布:采用循环的方式将一次插入的数据存储到不同的节点上,应尽量减少这种分布方式,除非不能确定一张表的哈希分布键或者不存在合理的能够避免数据倾斜的分布键。随机分布会采用循环的方式将一次插入的数据存储到不同的节点上。随机性只在单个 SQL 中有效,不考虑跨 SQL 的情况。譬如如果每次插入一行数据到随机分布表中,最终的数据会全部保存在第一个节点上。(一次插入一行和一次插入多行)

       create table t1 (id int) DISTRIBUTED RANDOMLY;
      
    • 复制表:即整张表在每个节点上都有完成的数据。一般适用于小表,这样可以减少查询执行过程中进行重分布或者广播

      CREATE TABLE student_rep (id int) DISTRIBUTED REPLICATED;
      

并行执行计划

  1. 三种数据的移动操作

    • Broadcast Motion (N:N):广播数据。每个节点向其他节点广播需要发送的数据。
    • Redistribute Motion (N:N):重新分布数据。利用 join 列数据的 hash 值不同,将筛选后的数据在其他 segment 重新分布
    • Gather Motion (N:1):聚合汇总数据。每个节点将 join 后的数据发到一个单节点上,通常是发到主节点 master 。
  2. 数据重分布和广播(优化器会计算广播与重分布两种方式各自的代价,选择代价低的方式进行)

    1. 数据准备

      1. -- 哈希分布
        CREATE TABLE student (id int4 NULL,"name" varchar(400) NULL
        )
        DISTRIBUTED BY ("name");-- 随机分布
        CREATE TABLE student_class (id int4 NULL,class_name varchar(255) NULL,student_name varchar(255) NULL
        )
        DISTRIBUTED RANDOMLY;select *
        fromstudent st
        left join student_class sc onst."name" = sc.student_name
        
    2. 重分布

      1. 即表的关联键和分布键不一致,因此数据需要重新分布来达到单库关联的效果
        在这里插入图片描述

参考文档

  1. 官方中文文档地址
  2. GP查询详解
  3. GP广播与重分布

关于管理和监控工具

  1. Greenplum数据库提供了标准的命令行工具来执行通常的监控和管理任务。
  2. Greenplum的命令行工具位于 $GPHOME/bin目录中并且在Master主机上执行。Greenplum为下列管理任务提供了实用工具
    1. 在一个阵列上安装Greenplum数据库
    2. 初始化一个Greenplum数据库系统
    3. 开始和停止Greenplum数据库
    4. 增加或者移除一个主机
    5. 扩展阵列并且在新的Segment上重新分布表
    6. 恢复失效的Segment实例
    7. 管理失效Master实例的故障切换和恢复
    8. 备份和恢复一个数据库(并行)
    9. 并行装载数据
    10. 在Greenplum数据库之间转移数据
    11. 系统状态报告

配置表

  1. gp_segment_configuration
    在这里插入图片描述

  2. 在这里插入图片描述

  3. 查看greenplum库各个节点数据的分布情况

    • select gp_segment_id,count(*) from table_name group by gp_segment_id;
      -- 查询数据在哪个节点上
      select gp_segment_id, * from student;
      

相关文章:

GreenPlum简介

简介 Greenplum是一家总部位于**美国加利福尼亚州,为全球大型企业用户提供新型企业级数据仓库(EDW)、企业级数据云(EDC)和商务智能(BI)提供解决方案和咨询服务的公司,在全球已有:纳斯达克,纽约证券交易所,Skype. FOX&…...

HTML和CSS入门学习

目录 一.HTML 二.CSS 1.CSS作用:美化页面 2.CSS语法 【1】CSS语法规范 【2】如何插入样式表 3.CSS选择器 4.CSS设置样式属性--设置html各种标签的属性 【1】文本属性--设置整段文字的样式 【2】字体属性--设置单个字的样式 【3】链接属性--设置链接的样式…...

轻量封装WebGPU渲染系统示例<17>- 使用GPU Compute之元胞自动机(源码)

注: 此示例通过渲染实体的渲染过程控制来实现。此实现方式繁琐,这里用于说明相关用法。 更简洁的实现请见: 轻量封装WebGPU渲染系统示例<19>- 使用GPU Compute材质多pass元胞自动机(源码)-CSDN博客 当前示例源码github地址: ht…...

fmx windows 下 制作无边框窗口最小化最大化并鼠标可拖移窗口

1,最顶端 放一个rectangle 置顶 ,此区域后面实现鼠标拖动 移动窗口,可在上面放置最大,最小,关闭按钮 2,窗口边框模式 设置 none 3,rectangel mousemove事件 uses Winapi.Windows,Winapi.Messages,FMX.Platform.Winprocedure TfrmMain.Rectangle1MouseMove(Sender: TObje…...

【Python】11 Conda常用命令

Conda简介 Conda是一个开源的软件包管理系统和环境管理器,用于安装和管理不同语言的软件包,如Python、R等。它可以创建独立的环境,每个环境都可以安装特定版本的软件包和依赖项,而不必担心与其他环境冲突。Conda还可以轻松地在不…...

5G边缘计算网关 是什么?

5G边缘计算网关:智能设备的云端控制与数据采集 随着物联网技术的不断发展,5G边缘计算网关正在成为智能设备领域的一种重要技术。这种智能网关具备强大的功能,可以完成本地计算、消息通信、数据缓存等任务,同时支持云端远程配置和…...

mac电脑系统清理软件CleanMyMac X2024破解版下载

基本上,不管是win版还是Mac版的电脑,其装机必备就是一款电脑系统清理软件,就比如Mac,目前在市面上,电脑系统清理软件是非常多的。 对于不熟悉系统的用户来说,使用一些小众工具,往往很多用户都不…...

19 款Agent产品工具合集

原文:19 款Agent产品工具合集 什么是Agent? 你告诉GPT完成一项任务,它就会完成一项任务。 如果你不想为GPT提出所有任务怎么办?如果你想让GPT自己思考怎么办? 想象一下,你创建了一个AI,你可以给它一个…...

[尚硅谷React笔记]——第8章 扩展

目录: 扩展1_setState扩展2_lazyLoad扩展3_stateHook扩展4_EffectHook扩展5_RefHook扩展6_Fragment扩展7_Context扩展8_PureComponent扩展9_renderProps扩展10_ErrorBoundary组件通信方式总结 1.扩展1_setState setState更新状态的2种写法 setState(stateChange…...

卷积神经网络中 6 种经典卷积操作

深度学习的模型大致可以分为两类,一类是卷积神经网络,另外一类循环神经网络,在计算机视觉领域应用最多的就是卷积神经网络(CNN)。CNN在图像分类、对象检测、语义分割等经典的视觉任务中表现出色,因此也早就…...

下拉列表框Spinner

在XML文件中的创建 <Spinnerandroid:id"id/spinner"android:layout_width"wrap_content"android:layout_height"wrap_content"/> 在Java文件中的设置 //获取Spinner对象 Spinner spinnerfindViewById(R.id.spinner); //创建数组…...

C++高级功能笔记

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;…...

PTE SST和RL模板

目录 事实证明&#xff0c;SST分值占比很小&#xff0c;不是很需要好好练 SST的模板&#xff1a; RL模板&#xff1a; 给你一个模版供参考&#xff1a; RA技巧 为什么说日本人团结 This lecture mainly talked about the importance of words and the sound of words and…...

2023年03月 Python(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 十进制数111转换成二进制数是?( ) A: 111 B: 1111011 C: 101111 D: 1101111 答案:D 十进制转二进制,采用除二倒取余数,直到商为0为止。 第2题 某班有36人,王老师想给每位…...

Mysql数据库 10.SQL语言 储存过程 中 流程控制

存储过程中的流程控制 在存储过程中支持流程控制语句用于实现逻辑的控制 一、分支语句 语法&#xff1a;if-then-else 1.单分支语句 语法 if conditions then ——SQL end if; if conditions then——SQLend if; ——如果参数a的值为1&#xff0c;则添加一条班级信息 …...

测试用例的设计方法(全):错误推测方法及因果图方法

目录 错误推测方法 一. 方法简介 因果图方法 一. 方法简介 二. 实战演习 错误推测方法 一. 方法简介 1. 定义&#xff1a;基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。 2. 错误推测方法的基本思想&#xff1a; 列举出程序中…...

折叠旗舰新战局:华为先行,OPPO接棒

乌云中的曙光&#xff0c;总能带给人希望。 全球智能手机出货量已经连续八个季度下滑&#xff0c;行业里的乌云挥之不散。不过&#xff0c;也能看到高端市场逆势上涨&#xff0c;散发光亮。个中逻辑在于&#xff0c;当前换机周期已经达到了34个月&#xff0c;只有创新产品才能…...

ESP使用webserver实现本地控制

因为使用云服务有时候不可靠&#xff0c;那么离线控制就很重要。本文使用webserver实现本地网页控制。这样不需要再单独开发APP&#xff0c;有浏览器就可以控制。本文所有测试是靠ESP32。8266未测试。使用USE_8266控制。 核心代码如下&#xff1a; html.h #pragma onceconst…...

小红书热点是什么,怎么找到热点话题!

在小红书平台&#xff0c;想要先人一步&#xff0c;捕捉更多流量&#xff0c;就必须了解如何追小红书热点。合理有效的蹭热点&#xff0c;不仅提升流量&#xff0c;还能降低传播成本。今天来跟大家一起探讨下小红书热点是什么&#xff0c;怎么找到热点话题&#xff01; 一、小红…...

mysql之子表查询、视图、连接查询

1、子查询返回的结果只能是某列&#xff0c;不能是多列。where条件in什么&#xff0c;子查询的列就是什么 &#xff08;1&#xff09;多表联查&#xff08;不要超过3张表&#xff09;重点 ①in包含 ②not in取反&#xff08;加上where条件过滤&#xff0c;否则没意义&#xff…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...