GreenPlum (一) 初识

news2025/1/23 10:31:36

在开始了解GreenPlum之前,应该对这种产品的诞生有基本的了解,搭建一个基本的知识框架。对以下历史有基本了解之后应对下文术语进行基本阅读。

​ 阅读目标: 阅读完成后需要对相关术语以及greenplum有基础理解。

文案基本互联网相关blog进行整体汇总,原文全部在参考链接中。

概览

​ Greenplum 数据库是一个大规模并行处理 (MPP) SQL 数据库(与硬件无关),它基于 PostgreSQL 构建并构建。它可以扩展到数 PB 级的数据工作负载,而不会出现任何问题,并且它允许访问功能强大的服务器集群,这些服务器将在单个 SQL 界面中协同工作。

​ 它的架构专门设计用于管理大规模数据仓库和商业智能工作负载,这个功能丰富的数据库可对可扩展到 PB 级的数据进行强大而快速的分析。

​ 处理大量复杂数据或大数据时,您的主机可能会开始被它必须处理的所有数据压垮,以产生您的分析结果。Greenplum使用MPP架构,如下文数据中MMP,你可能是一个图书馆管理员,并且有很多助手。助手管理很多组员。或者可以称为你是领导节点,助手是计算节点。你在Greenplum中称为“master”,告诉所有其他节点,在Greenplum中称为段(计算节点),该怎么做,并合并它们的响应以创建最终答案。(当查询进入主节点时,它会被解析、计划并调度到所有段以执行查询计划并返回请求的数据或将查询结果插入数据库表。结构化查询语言,版本SQL:2003,用于向系统呈现查询。事务语义符合称为 ACID 的约束。)

​ MPP 数据库通过添加更多计算资源(节点)进行水平扩展,而不必担心升级到越来越昂贵的单个服务器(垂直扩展)。

​ 基于PostgreSQL架构,Greenplum基本上在一个Greenplum集群中一次利用多个PostgreSQL数据库实例。PostgreSQL用户可以快速熟悉这种数据库类型,因为Greenplum中的许多特性,配置和功能都是相同的,并且包括旨在优化PostgreSQL如何为商业智能(BI)任务和工作负载工作的功能。

​ Greenplum还引入了许多PostgreSQL中不可用的功能,例如并行数据加载,资源管理,存储增强和高级查询优化,与PostgreSQL类似,Greenplum利用一个主服务器或主机,它是数据库的入口点,接受连接和SQL查询。但是,PostgreSQL利用备用节点在地理上分布其部署,Greenplum使用存储和处理数据的分段主机。Greenplum段是独立的,每个段存储一部分数据,处理大部分查询处理。您可以利用少至两段主机,并扩展到无限容量。如果启用了镜像,则必须以至少 2 的增量增加分段主机。

优势

Greenplum 有一个独特设计的数据管道,可以有效地将数据从磁盘流式传输到 CPU,而无需依赖适合 RAM 内存的数据。这为Greenplum部署提供了巨大的性能提升,而不是需要足够内存来存储其数据的内存系统,或者基于RDBMS的非RDBMS系统,这些系统是内存中处理引擎,为每个并发查询分配RAM。

Greenplum的高性能消除了大多数RDBMS扩展到PB级数据的挑战,因为它们能够线性扩展以有效地处理数据。

  • 查询优化

Greenplum 具有基于成本的查询优化器,适用于大规模大数据工作负载。利用我们上面介绍的性能,Greenplum 将交互式和批处理模式分析扩展到 PB 级,而不会降低查询性能。

这允许Greenplum在其不同段之间分配负载,并并行使用系统的所有资源来处理查询。

随着Greenplum 6中OLTP(在线事务处理)工作负载的改进,单个查询性能比Greenplum 5提高了3.5c以上。通过此更新,Greenplum消除了许多锁竞争,因此主CPU使用率可以超过90%,从而通过提高主节点的硬件性能来提高查询性能。

  • 开源

    Greenplum数据库是一个基于PostgreSQL开源核心的开源数据仓库项目,允许用户利用PostgreSQL背后数十年的专家开发,以及Greenplum针对大数据应用的针对性定制。

    Greenplum可以在任何Linux服务器上运行,无论是托管在云中还是本地,并且可以在任何环境中运行

  • 多态数据存储

    Greenplum的多态数据存储允许您控制表和分区存储的配置,并可以随时自由执行和压缩其中的文件。

    这将允许您根据访问特定数据的方式设计表,进而具有面向行或列的存储层次结构。

    在Greenplum中创建表时,可以通过选择面向列或面向行的数据来控制方向。面向列通常更适合完整扫描,而面向行的则更适合小型扫描或查找。

  • 主要用例

    Greenplum提供了大规模并行处理数据库和高级数据分析的强大组合,使其能够为数据科学家和架构师创建一个框架,以根据人工智能和机器学习收集的数据做出业务决策。

    Greenplum提供的高级分析正在许多垂直领域使用,包括金融,制造,汽车,政府,能源,教育,零售等,以解决各种各样的问题。Pivotal强调的一些Greenplum数据库分析功能包括分析多种数据类型,利用现有的SQL知识以及通过使用MPP架构在更短的时间内训练更多模型的能力。

    此外,Greenplum还提供数据库内分析,允许您直接在数据库中运行分析,而不是在外部分析引擎中导出和运行数据。

    作为为企业工作负载量身定制的数据库,它提供了探索大型数据集所需的功能,以及通过跨可用分段主机并行分析而实现的高性能。

    还可以通过Greenplum利用各种功耗分析工具,包括MADlib,R统计语言,SAS和预测建模标记语言(PMML)。

    Greenplum是一个优秀的机器学习数据库 - 研究通过经验自动改进的计算机算法。Apache MADlib是一个开源的,基于SQL的机器学习库,在Greenplum和PostgreSQL上运行数据库。这种组合可帮助您提高 Greenplum 机器学习部署的并行性、可扩展性和预测准确性。 MADlib 还提供用于机器学习的数据转换和特征工程功能,包括描述性和推理性统计、透视、会话化和编码分类变量。

    例如,一家政府欺诈收入保留公司正在利用Greenplum机器学习功能以及GemFire执行大规模欺诈检测,以防止身份盗用,每年检测和保留50亿美元,每天处理800万起案件。

    人工智能(AI)虽然类似于机器学习,但是指机器可以智能执行任务的更广泛概念。Greenplum 是希望通过智能机器模仿人类能力的应用程序的绝佳数据库选择。

    凭借Greenplum高速摄取大量数据的能力,它使该数据库成为需要基于无限数量的独特场景进行智能交互的智能应用程序的强大工具。

历史

​ 该技术是由一家总部位于加利福尼亚州圣马特奥的同名公司于2005年左右创建的。Greenplum 于 2010 年 7 月被 EMC 公司收购。

​ 从2012年开始,其数据库管理系统软件被称为通过Pivotal Software销售的Pivotal Greenplum数据库。Pivotal开源了核心引擎,并由Greenplum数据库开源社区和Pivotal继续开发。

​ 从 2020 年开始,Pivotal 被 VMware 收购,VMware 继续赞助 Greenplum 数据库开源社区,并以 VMware Tanzu Greenplum 品牌将该技术商业化。

技术

​ Pivotal的Greenplum数据库产品使用大规模并行处理(MPP)技术。每个计算机群集由一个主节点、备用主节点和分段节点组成。所有数据都驻留在分段节点上,目录信息存储在主节点中。段节点运行一个或多个段,这些段是修改后的 PostgreSQL 数据库实例,并分配有内容标识符。

​ 对于每个表,数据根据用户在数据定义语言中指定的分布列键在段节点之间划分。对于每个段内容标识符,都有一个不在同一物理主机上运行的主段和镜像段。

​ 争对手包括主要供应商提供的其他MPP数据库管理系统,如Teradata,Amazon Redshift,Microsoft Azure,Alibaba AnalyticDB以及过去的IBM Netezza。其他竞争来自其他较小的竞争对手,面向列的数据库,如HP Vertica,Exasol和非MPP架构的数据仓库供应商,如Oracle Exadata,IBM Db2和SAP HANA。

术语

  • MMP

    Massively Parallel Processing (or MPP for short) 大规模并行处理(简称MPP)

    虽然存储和计算能力在过去几十年中取得了长足的进步,但不幸的现实是,它们没有跟上现代数据存储和分析的需求。

    MPP数据库通过将所需的处理能力分配给几个不同的节点来最有效地分析大型数据集,从而解决了这个问题。

    水平缩放,而不是垂直缩放

    例子:

    让我们假设你是一名研究人员,你毕生的梦想是计算国会图书馆的总字数。在华盛顿特区亲自注册后你被授予访问权限,你从书架上拿起你看到的第一本书,然后开始计数。

    在此示例中,您表示一台服务器正在浏览数据(国会图书馆)并处理查询(单词总和),并且很容易看出这个问题:根据维基百科,国会图书馆包含超过 1.67 亿个独特的项目。

    以正常的阅读速度,你需要数万年才能读完每一篇课文。认识到这一点,您尝试提高阅读速度(垂直缩放)。您投资速读课程,并购买了一些昂贵的工具来帮助您更快地打开书籍和翻页。这使您可以在一分钟内将能够数出的单词数增加一倍,但即使以这种增加的速度,很明显,您要到数千年后才能完成任务。

    如果您没有投资提高处理能力,而是向国会图书馆雇用的 3,000 人寻求帮助,该怎么办?虽然你只能更快地计算单词,但你通过吸引更多人来水平扩展的能力几乎是无限的。

    图书馆馆长认为这个项目将很好地利用纳税人的钱,并将每个员工都奉献给这项任务,并让您负责每个人。想一想这种情况:什么最有意义?您将如何组织每个人以确保快速、高效和准确地获得结果?

    最简单的方法可能是为每个人分配一个看起来大致相等的图书馆部分来处理,比如…每个人都有一个架子。它不会完全相等,但它会足够接近。

    当每个人都在阅读他们指定的书架上的文本并计算单词时,你作为领导者正在组织一切:你确保每个人都分配了一个架子,他们根据需要获得零食、水和洗手间休息时间,当几个人打电话请病假时,你找一些临时工来填补。

    当员工数完书架上的所有单词后,他们会在便利贴上写下数字,然后走到你的办公桌前递给你。然后,您将便笺上的数字添加到总字数中。

    当每个人都完成他们的货架时,你就有了最终的计数!

    这是大规模并行处理的实际应用,只是使用人类而不是计算机。将简单但较大的任务拆分为多个存储桶并同时处理这些存储桶将比一个人单独工作快得多,无论这个人有多熟练。

    简而言之,MPP 数据库是一种数据库或数据仓库,其中数据和处理能力在几个不同的节点(服务器)之间分配,具有一个领导节点和一个或多个计算节点。在MPP中,领导者(你)将被称为领导者节点 - 你告诉所有其他人该做什么并对最终计数进行排序。图书馆员工,你的助手,将被称为计算节点 - 他们处理所有数据,运行查询并计算单词。MPP 数据库可以通过添加更多计算资源(节点)进行水平扩展,而不必担心升级到越来越昂贵的单个服务器(垂直扩展)。 向群集添加更多节点允许数据和处理分布在更多计算机上,这意味着查询将更快地完成。

    替代方案:

    大规模并行处理并不是促进处理大量数据的唯一技术。Hadoop Hive和Redshift。总而言之,与Hadoop不同,MPP数据库使用“无共享”架构。数据集不会重叠,所有通信都通过网络进行。

    每个节点或服务器都包含它负责的数据(书架)和分析这些数据的计算能力(图书馆员)。这使得 MPP 数据库更易于部署和维护。云MPP数据库,如亚马逊的Redshift数据库,也具有成本效益,并支持基于SQL的商业智能工具,如Looker和Tableau。

    MPP数据库结构化数据和MPP数据库的常见问题不支持非结构化数据,甚至结构化数据,例如来自MySQL或PostgreSQL数据库的数据,都需要一些处理以确保它符合MPP结构。

    这是因为 MPP 数据库通常是列式的,这使得分析查询的处理速度更快。

  • 列式数据库

    传统数据库按每行存储数据。每条记录的字段按顺序存储。

    image-20230418180022368

    此二维表将存储在面向行的数据库中,如下所示:

    1,Benny Smith,23 Workhaven Lane,52683,14033335568,Lethbridge,Canada,43;2,Keith Page,1411 Lillydale Drive,18529,16172235589,Woodridge,Australia,26;3,John Doe,1936 Paper Blvd.,92512,14082384788,Santa Clara,USA,33;

    记录的字段是逐个存储的,然后存储下一条记录的字段,然后是下一条记录的字段,依此类推

    优点

    • 仅涉及面向行的数据库列的查询
    • 针对大量数据的聚合查询
    • 按列压缩

    缺点

    • 增量数据加载
    • 联机事务处理 (OLTP) 使用情况
    • 仅针对几行的查询

    参考

    • Columnar Storage
    • Wikipedia: Column-Oriented DBMS
      维基百科:面向列的DBMS
    • Scalability of Amazon Redshift Data Loading and Query Speed
      Amazon Redshift 数据加载和查询速度的可扩展性
  • ACID

在数据库和数据存储系统的上下文中,事务是被视为单个工作单元的任何操作,它要么完全完成,要么根本不完成,并使存储系统处于一致状态。交易的典型例子是当您从银行账户中提取资金时会发生什么。

钱要么离开了你的银行账户,要么没有——不可能有中间状态。

A.C.I.D. 属性:原子性Atomicity、一致性Consistency、隔离性Isolation和持久性Durability

ACID 是一个首字母缩略词,指的是定义事务的 4 个关键属性的集合:原子性、一致性、隔离性和持久性。如果数据库操作具有这些 ACID 属性,则可以将其称为 ACID 事务,应用这些操作的数据存储系统称为事务系统。ACID 事务保证表的每次读取、写入或修改都具有以下属性:

  • 原子性 - 事务中的每个语句(读取、写入、更新或删除数据)都被视为单个单元。要么执行整个语句,要么不执行任何语句。此属性可防止在流数据源在中途发生故障时发生数据丢失和损坏。
  • 一致性 - 确保事务仅以预定义的、可预测的方式对表进行更改。事务一致性可确保数据中的损坏或错误不会对表的完整性造成意外后果。
  • 隔离 - 当多个用户同时从同一个表中读取和写入时,隔离其事务可确保并发事务不会相互干扰或影响。每个请求都可以像一个接一个地发生一样发生,即使它们实际上是同时发生的。
  • 持久性 - 确保成功执行的事务对数据所做的更改将被保存,即使在系统故障的情况下也是如此。

ACID 事务可确保尽可能高的数据可靠性和完整性。它们确保您的数据永远不会因为仅部分完成的操作而陷入不一致状态。例如,如果没有 ACID 事务,如果您正在将一些数据写入数据库表,但意外断电,则可能只保存了部分数据,而其中一些数据则不会保存。您的数据库处于不一致状态,从中恢复起来非常困难且耗时。

参考

databricks-acid-transactions

  • RDBMS

    关系数据库管理系统

    RDBMS是用于维护关系数据库的程序。

    RDBMS是所有现代数据库系统的基础,如MySQL,Microsoft SQL Server,Oracle和Microsoft Access。

    RDBMS 使用 SQL 查询来访问数据库中的数据。

    w3schools-RDBMS

参考链接

维基百科

greenplum官方网站

integrate-greenplum

dzone-greenplum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果跌倒检测新专利获得,结合苹果Find My可准确定位

苹果首款“跌倒检测”功能专利可追溯到 2018 年公示的 20190103007,后续又获得了至少 5 项相关专利。根据美国商标和专利局(USPTO)上周四公示的专利,苹果公司再次获得了一项“跌倒检测”功能专利。 苹果在报告中表示&#xff0c…

亚马逊云科技让你在云端发现企业穿越周期稳健发展的力量

2023年3月29日「哈佛商业评论-未来管理沙龙」活动盛大启幕,此次沙龙活动以穿越周期的力量为主题方向,以解码跨国企业持续增长源动力为主旨,希望为企业高层管理者们带来更多思考和启迪。 作为特邀嘉宾,亚马逊全球副总裁、亚马逊云…

内存的分区

目录 内存分区介绍 区域功能 内存分区运行前后的区别 运行之前(代码区数据区未初始化数据区) 运行之后(代码区数据区未初始化数据区栈区堆区) 缓冲区 缓冲区有什么用? 缓冲区的三种类型 缓冲区的刷新 内存分布图 栈与堆…

AI绘画——ControlNet扩展安装教程

目录 1.ControlNet安装 2.预处理模型安装 预处理模型(annotator)下载链接: 预处理模型安装地址: 3.ControlNet模型下载 Controlnet模型下载地址: Controlnet模型安装目录: 注:&…

KDZRS-40A三通道变压器直流电阻测试仪

一、产品概述 变压器绕组的直流电阻测试是变压器在交接、大修和改变分接开关后的试验项目。在通常情况下,用传统的方法(电桥法和压降法)测量变压器绕组以及大功率电感设备(发电机)的直流电阻是一项费时费工的工作。为了…

VMware从零配置安装CentOS 7

不跳步图文详细安装教程 一、VMware的下载二、VMware的安装三、CentOS7的下载第一步:根据自己电脑操作系统的位数点击选择(大多数都是64位操作系统)第二步:任意挑选一个镜像源进入下载界面第三步:下载对应版本的CentOS…

比较运算符、关键字子查询MySQL数据库 (头歌实践教学平台)

文章目的初衷是希望学习笔记分享给更多的伙伴,并无盈利目的,尊重版权,如有侵犯,请官方工作人员联系博主谢谢。 目录 第1关:带比较运算符的子查询 任务描述 相关知识 子查询 带比较运算符的子查询 编程要求 第2关…

Spring Messaging-远程命令执行漏洞(CVE-2018-1270)

Spring Messaging-远程命令执行漏洞(CVE-2018-1270) 0x00 前言 spring messaging为spring框架提供消息支持,其上层协议是STOMP,底层通信基于SockJS,在spring messaging中,其允许客户端订阅消息&#xff0…

微服务 - Redis缓存 · 数据结构 · 持久化 · 分布式 · 高并发

一、分布式解决 Session 的问题 在单站点中,可以将在线用户信息存储在Session中,随时变更获取信息;在多站点分布式集群如何做到Session共享呢?架设一个Session服务,供多服务使用。 频繁使用的数据存在DB端&#xff0…

向隐形冠军学习:聚焦人效,用时间管理提效益

注: 本文来源于盖雅工场联合创始人兼CEO 章新波 在2023狮山论坛“ 向隐形冠军学习: 聚焦人效,用时间管理提效益 ”的主题分享。 文|章新波 整理 |盖雅学苑 在人力资源行业以及各大企业,「人效」这个词…

How to use CCS to debug a running M4F core that was started by Linux?

参考FAQ:AM62x & AM64x: How to use CCS to debug a running M4F core that was started by Linux? 问题记录: 1.使用SD卡启动模式,板上运行Linux。 当Linux系统启动后,9表示M4F core: am64xx-evm login: root rootam64xx…

Maven 打包跳过测试的 5 种方法

平时开发时的工作的话之主要负责写代码就行了,什么发布项目啊,好吧不是我们干的事。在我们的了解中打包发布项目应该不是一个困难的问题。 对,最简单的方法就行使用直接使用maven插件打包,甚至我们都不需要知道他是怎么实现的&am…

搞懂 API :Mock 常见问题及解决办法

API Mock是一个构建Web服务质量保证环节的非常实用的工具。它可以让开发者在独立工作或集成测试时,快速开始调试和验证他们的代码。但是,在实践中,API Mock也可能会出现一些问题。 本文将讨论API Mock中的一些常见问题,并提供一些…

MyBatis(十四)MyBatis的缓存

前言 1、缓存:cache 2、缓存的作用: 通过减少IO(读写)的方式,来提高程序的执行效率。 3、mybatis的缓存: 将select语句的查询结果放到缓存(内存)当中,下一次还是这条…

Python爬虫之Js逆向案例(1)-京东商品评论数据商品详情数据案例

<center>声明&#xff1a;京东商品评论数据&商品详情获取分析仅用于研究和学习&#xff0c;如有侵权&#xff0c;可删除</center> 一次运行程序&#xff0c;同时获取一下内容&#xff1a; 1. 获取整站实时商品详情数据&#xff1b; 2. 获取整站实时商品评论数…

【数据结构】顺序表的增删查改操作

上一篇文章为大家介绍了对顺序表的简单的使用&#xff0c;【数据结构】顺序表详解_王笃笃的博客-CSDN博客 本篇文章继续完善对顺序表增删查改的操作。 上一篇写到了顺序表的尾部插入&#xff0c;本篇将从头部插入继续完善&#xff1b; 以下为本篇目录&#xff0c;方便阅读 …

Axios请求(对于ajax的二次封装)——Axios拦截器与错误处理

Axios请求&#xff08;对于ajax的二次封装&#xff09;——Axios拦截器与错误处理 知识回调&#xff08;不懂就看这儿&#xff01;&#xff09;场景复现核心干货axios拦截器在请求或响应被处理之前拦截他们移除拦截器给自定义的axios实例添加拦截器实际开发中的自定义拦截器&am…

C++ | 探究拷贝对象时的一些编译器优化

&#x1f451;作者主页&#xff1a;烽起黎明 &#x1f3e0;学习社区&#xff1a;烈火神盾 &#x1f517;专栏链接&#xff1a;C 文章目录 前言一、传值传参二、传引用传参三、传值返回拷贝构造和赋值重载的辨析 四、传引用返回【❌】五、传匿名对象返回六、总计与提炼 前言 在传…

网友感到担忧!iOS 17支持第三方应用商店:这下跟安卓没区别了

苹果此前官宣将于6月6日召开WWDC2023大会&#xff0c;按照往年的惯例&#xff0c;在这次大会上将会推出下一代iOS系统&#xff0c;也就是iOS 17。最近国外有关iOS 17的爆料中提到&#xff0c;迫于欧盟法案压力&#xff0c;iOS 17或将支持第三方应用商店。 2022年3月份&#xff…

springboot+vue社区维修平台(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的社区维修平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 目前有各类成品java毕设&#xff0c;需要请看文末联…