Greenplum DB

大规模并行处理系统
授权协议 Apache
开发语言 C/C++ Python Google Go
所属分类 程序开发、 并发/并行处理框架
软件类型 开源软件
地区 不详
投 递 者 夏侯林
操作系统 Linux
开源组织 Pivotal
适用人群 未知
 软件概览

Greenplum 之前属于Pivotal,是一家总部位于美国加利福尼亚州,为全球大型企业用户提供新型企业级数据仓库(EDW)、企业级数据云(EDC)和商务智能(BI)提供解决方案和咨询服务的公司。目前 Greenplum 已经归属 VMware。

Greenplum 数据库 (gpdb)号称是世界上第一个开源的大规模并行数据仓库,2019年,Greenplum被Gartner评为全球排名第三的分析型数据库和排名第四的实时分析数据库。

Greenplum基于MPP(大规模并行处理)架构,最初是基于 PostgreSQL,现在已经添加了大量数据库方面的创新。Greenplum 提供 PB 级别数据量的强大和快速分析能力,特别是面向大数据方面的分析能力,支持大数据的超高性能分析查询。Greenplum内置并行存储、并行通讯、并行计算和优化技术,支持持扩展(Extension)、自定义类型和函数、PXF和外部表技术。

Greenplum 主要特性:

  • 大规模并行处理架构

  • 高性能加载,使用 MPP 技术,提供 Petabyte 级别数据量的加载性能

  • 大数据工作流查询优化

  • 多态数据存储和执行

  • 支持多种数据格式,包括结构化、半结构化(XML、JSON、KV)和非结构化(文本数据、GIS数据、图数据等)

  • 支持SQL、JDBC和ODBC等行业标准

  • 支持商业智能(BI)、文本、GIS、图像、流式数据处理等

  • 基于 Apache MADLib 的高级机器学习功能

  • HTAP能力,支持涵盖OLTP型业务的混合负载

Greenplum 采用 Apache 协议开源之后,加上之前的 HAWQPostgreSQL 以及 PostGIS,完全可以构建一体化的 PostgreSQL 企业数据架构。

Greenplum的架构采用了MPP(大规模并行处理)。在 MPP 系统中,每个 SMP 节点也可以运行自己的操作系统、数据库等。换言之,每个节点内的 CPU 不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配(Data Redistribution) 。与传统的SMP架构明显不同,通常情况下,MPP系统因为要在不同处理单元之间传送信息,所以它的效率要比SMP要差一点,但是这也不是绝对的,因为 MPP系统不共享资源,因此对它而言,资源比SMP要多,当需要处理的事务达到一定规模时,MPP的效率要比SMP好。这就是看通信时间占用计算时间的比例而定,如果通信时间比较多,那MPP系统就不占优势了,相反,如果通信时间比较少,那MPP系统可以充分发挥资源的优势,达到高效率。当前使用的 OTLP程序中,用户访问一个中心数据库,如果采用SMP系统结构,它的效率要比采用MPP结构要快得多。而MPP系统在决策支持和数据挖掘方面显示了优势,可以这样说,如果操作相互之间没有什么关系,处理单元之间需要进行的通信比较少,那采用MPP系统就要好,相反就不合适了。

  • 目录 前言 一、master服务器 1台 1.登录 master 服务器,停止数据库: 2.备份 greenplum-db-6.1.0 原文件 3.配置环境变量 :vi .bashrc ,添加如下内容  4.安装文件:greenplum-db-6.15.0-rhel7-x86_64.rpm  5.将安装好的 greenplum-db-6.15.0 赋权给 gpadmin 用户  二、standby

  • Greenplum的安装与使用_greenplum使用_lee_dalizi的博客-CSDN博客 安装大致步骤,跟以上差不多。 系统:centos7,虚拟机器:vm1,vm2,vm3 数据库版本:open-source-greenplum-db-6.24.2-rhel7-x86_64.rpm 安装步骤: 1:每个vm禁用selinux ,在/etc/selinux/config中 修改SELINU

  • 1.升级原因 为什么会一直关注Greenplum的版本信息? 项目数据库要从 MySQL 切换到 Greenplum 问题最多的就是 SQL 语法不同,MySQL有on duplicate key update实现冲突更新,Greenplum却没有。 PostgreSQL 9.5 引入了 UPSET 功能,其语法insert on conflict do非常强大,支持合并写入(当违反某唯一约束时,

  • HINT: To avoid a database shutdown, execute a full-database VACUUM in DB 这是数据库库龄超出阈值的一个提醒       数据库的年轮值:       select datname,age(datfrozenxid) from pg_database;      数据库设置的阀值:       select setting fr

  •   一,安装准备   1.1基础准备 名称 安装文件 备注 中文补丁 fonts-chinese-3.02-12.el5.noarch.rpm   FTP服务器 vsftpd-1.1.3-8.i386.rpm 可选,方便于文件存取 XFS文件系统补丁 kmod-xfs-0.4-2.x86_64.rpm Greenplum推荐在LINUX上使用XFS文件系统,在SOLARIS上使用ZFS文件系统。

  • 1.管理数据 1.1.关于GP的并发控制 1) GP使用多版本控制模型(Mutltiversion Concurrency Control/MVCC)保持数据一致性; 可将MVCC看成行级别锁的一种妥协,它在许多情况下避免了使用锁,同时可以提供更小的开销。根据实现的不同,它可以允许非阻塞式读,在写操作进行时只锁定必要的记录。MVCC会保存某个时间点上的数据快照。这意味着事务可以看到一个一致的数据视

  • 一、基础环境 1、机器分布 IP 主机名 软件 服务 192.168.153.159 master01 GP-6.18.2 master 192.168.153.160 master02(standby) GP-6.18.2 master 192.168.153.161 segment01 GP-6.18.2 segment 192.168.153.162 segment02 GP-6.18.2

  • 环境准备 安装包 greenplum-db-6.9.0-rhel7-x86_64.rpm 下载地址 https://github.com/greenplum-db/gpdb/releases 主机节点 192.168.1.1 master 192.168.1.2 segment1 192.168.1.3 segment2 环境配置 ------所有服务器都需配置------

  • 数据存储          Greenplum支持50PB(1PB=1024TB)级海量数据的存储和处理,Greenplum将来自不同源系统的、不同部门、不同平台的数据集成到数据库中集中存放,并且存放详尽历史的数据轨迹,业务用户不用再面对一个又一个信息孤岛,也不再困惑于不同版本数据导致的偏差,同时对于IT人员也降低管理维护工作的复杂度。它是采用MPP架构的数据库系统可以对海量数据进行管理。 高并发

 相关资料
  • 当我使用Spring批处理管理运行长时间运行的批处理作业的多个实例时,它会在达到jobLauncher线程池任务执行程序池大小后阻止其他作业运行。但是从cron中提取多个工作似乎效果不错。下面是作业启动器配置。 Spring批处理管理员Restful API是否使用不同于xml配置中指定的作业启动器?

  • 1.【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。 说明:资源驱动类、工具类、单例工厂类都需要注意。 2.【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。 正例: public class TimerTaskThread extends Thread { public TimerTaskThread(){ super.setName("

  • 11.6 执行系统命令 许多批处理作业可能需要一个外部命令调用内部的批处理作业.这样一个过程可以分开调度,但常见的元数据对运行的优势将会丢失.此外,multi-step 作业需要分割成多个作业. 因此通常的 spring batch提供一个tasklet实现调用系统命令: <bean class="org.springframework.batch.core.step.tasklet.System

  • 问题内容: 我正在使用Python脚本处理大型CSV文件(数以10M行的GB数)。 这些文件具有不同的行长,并且无法完全加载到内存中进行分析。 每行由脚本中的一个函数分别处理。分析一个文件大约需要20分钟,并且看来磁盘访问速度不是问题,而是处理/函数调用。 代码看起来像这样(非常简单)。实际的代码使用Class结构,但这是相似的: 鉴于计算需要共享的数据结构,使用多核在Python中并行运行分析的

  • 只要需要并行的程序逻辑可以划分为不同的职责,并分配给各个独立的step,那么就可以在单个进程中并行执行。并行Step执行很容易配置和使用,例如,将执行步骤(step1,step2)和步骤3step3并行执行,则可以向下面这样配置一个流程: <job id="job1"> <split id="split1" task-executor="taskExecutor" next="step4"

  • MongoDB多对多关联 如何在MongoDB中组织多对多关系 我在这种设置中看到的问题是MongoDB的16MB文档限制。假设我有s、s和s。有一个关联的和许多可能喜欢它的。中有许多和许多可以跟随它。一个可以有许多喜欢的并且可以跟随许多。如果我要用一个关系数据库来构建它,我会这样设置它: 理论上,如果在SQL查询中正确分页,则可以有有限数量的和跟随的;可以有无限数量的喜欢的;可以有无限数量的喜欢

  • 我有以下情况 有2个虚拟机正在向Kafka发送流,CEP引擎正在接收这些流,当单个流满足特定条件时,会生成警告。 目前,CEP正在检查两条流上的相同情况(当心率 但我想对这两个流使用不同的条件。例如,如果 如何实现这一点?我需要在同一环境中创建多个流环境或多个模式吗?

  • 问题内容: 在大约2011年3月,我测试了GAE(Java版本)作为大规模并行计算的潜在平台。该日期很重要,因为GAE一直在发展。我发现该应用程序被有效地限制在大约43.2倍的计算吞吐量上。 是否有人成功使用GAE进行大规模并行计算或获得了更高的计算增益? 出于这个问题的目的,我将任意定义大规模并行计算,以表示大于1000倍的计算吞吐量。 我使用了一个桌面客户端,该客户端实例化了多个线程来访问UR