MPP概述

news2024/12/28 5:27:58

前言

最近忙于工作,有一段时间没更新自己的博客了,也就意味着囤积了一波需要梳理总结并记录的知识点,但可以保证的是所有都是零星的知识点,不会涉及工作内容。

一、MPP简介

MPP (Massively Parallel Processing),即大规模并行处理,将任务并行的分散到多个服务器和节点上,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似),每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。

1、MPP本质上是基于数据库的集群架构,基于数据库并区别于传统单节点数据库,支持多节点分布式存储和计算。(值得一提的是并不是所有的数据库集群方案都是基于分布式存储的
2、MPP应该是多用作数据仓库,支撑查询和分析类应用场景。(个人理解)。
3、用关系型数据库(例如PostgreSQL),搭建一个分布式存储和计算的多节点集群,就基本形成了一个MPP数据库系统。

二、数据库非共享集群、数据库共享集群

MPP属于数据库非共享集群,故在此对数据库非共享集群、数据库共享集群进行简单区分,便于理解。

1、数据库非共享集群

在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。

2、数据库共享集群

Data Shared Cluster 数据共享集群,简称DSC,是并行集群,位于不同服务器系统的DM实例同时访问同一个数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,能够被集群中的所有节点同时访问。
DSC的优点主要在于高可用和负载均衡,一台机器宕机不影响应用访问数据库。

传统的单节点不属于集群,双机热备或Oracle RAC等,均是基于共享存储的。
Oracle RAC集群架构图:
在这里插入图片描述

三、MPP架构

在这里插入图片描述

1、MPP架构特征

(1)任务并行执行

基于MPP架构,数据库支持大规模任务并行执行。

(2)私有资源

基于MPP架构,每个节点都有独立的磁盘存储系统和内存系统。

(3)数据分布式存储(本地化)

基于MPP架构,分布式数据存储场景,每个节点都有独立的磁盘存储系统,可以本地化存储数据。

(4)分布式计算

基于MPP架构,分布式数据存储场景,每个节点都有独立的内存系统,数据在各节点上完成计算后再存入各节点的物理磁盘。

(5)横向扩展

基于MPP架构,各个节点独立,故便于横向拓展。

(6)Shared Nothing架构。

shared noting(SN)是一种分布式计算架构。这这种架构中,每一个节点都是独立的,自给的,在系统中不存在单点竞争。更明确地说,没有节点共享存储和硬盘。人们通常将SN和大量保存中央存储状态信息的系统进行对比,无论是在数据库,应用服务器或者是其他相似的单点竞争。
SN相对中央控制架构有很大的优点。SN可以避免单点故障,拥有自我恢复能力,并且在不破坏原有系统的情况下进行升级。

2.MPP部署架构

MPP部署架构是由多个SMP(对称多处理器结构,Symmetrical Multi-Processing)服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。其基本特征是由多个SMP服务器(每个SMP服务器称节点)通过节点互联网络连接而成,每个节点只访问自己的本地资源(内存、存储等),是一种完全无共享(Share Nothing)结构,因而扩展能力最好,理论上其扩展无限制。

四、MPP数据库

1、MPPDB简介

MPPDB是一款 Shared Nothing 架构的分布式并行结构化数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI 系统和决策支持系统。

2、MPPDB架构

在这里插入图片描述
MPPDB 采用完全并行的MPP + Shared Nothing 的分布式扁平架构,这种架构中的每一个节点(node)都是独立的、自给的、节点之间对等,而且整个系统中不存在单点瓶颈,具有非常强的扩展性。

3、MPPDB特征
(1) 低硬件成本

完全使用 x86 架构的 PC Server,不需要昂贵的 Unix 服务器和磁盘阵列。

(2) 集群架构与部署

完全并行的 MPP + Shared Nothing 的分布式架构,采用 Non-Master 部署,节点对等的扁平结构。

(3) 海量数据分布压缩存储

可处理 PB 级别以上的结构化数据,采用 hash分布、random 存储策略进行数据存储;同时采用先进的压缩算法,减少存储数据所需的空间,可以将所用空间减少 1~20 倍,并相应地提高 I/O 性能;

(4) 数据加载高效性

基于策略的数据加载模式,集群整体加载速度可达2TB/h。

(5) 高扩展、高可靠

支持集群节点的扩容和缩容,支持全量、增量的备份/恢复。

(6) 高可用、易维护

数据通过副本提供冗余保护,自动故障探测和管理,自动同步元数据和业务数据。提供图形化工具,以简化管理员对数据库的管理工作。

(7) 高并发

读写不互斥,支持数据的边加载边查询,单个节点并发能力大于 300 用户。

(8) 行列混合存储

提供行列混合存储方案,从而提高了列存数据库特殊查询场景的查询响应耗时。

(9) 标准化

支持SQL92 标准,支持 C API、ODBC、JDBC、ADO.NET 等接口规范。

4、常见MPPDB

国外DBMPP产品:

GREENPLUM(EMC)

Greenplum是一个面向数据仓库应用的关系型数据库,它基于流行的PostgreSQL开发,有良好的体系结构,在数据存储,高并发,高可用,线性扩展,反应速度,易用性和性价比等方面有非常明显的优势.大数据,Greenplum的性能在TB级别数据量的表现上非常优秀,单机性能相比Hadoop要快上好几倍;在功能和语法上,要比Hadoop上的SQL引擎Hive好用很多,普通用户更加容易上手,Greenplum有着完善的工具,整个体系都比较完善,不需要像Hive一样花太多的时间和精力进行改造.非常适合作为一些大型数据仓库的解决方案.Greenplum能够方便地与Hadoop进行结合,直接把数据卸载Hadoop上,并且能够直接在数据库上写MapReduce任务,同时配置简单.

Asterdata(Teradata)、Nettezza(IBM)、Vertica(HP)

国内DBMPP产品:
DM达梦、TiDB (pingCAP)、OpenGauss & GaussDB (高斯数据库)、SequoiaDB(巨杉数据)、OB & PolarDB (阿里)、TDSQL(腾讯)、GBase 8a MPP cluster(南大通用)

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

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

相关文章

Cisco学习笔记(CCNA)——Internetworking

Internetworking Internetworking Basics 什么是网络? 计算机网络:具有独立功能的多台计算机及其外部设备,通过通信线路连接起来 网络设备 Hub(集线器) 优点:便宜、操作简单 缺点:共享型、…

Set与Map的使用 + 二叉搜索树与哈希桶的大白话讲解和图解+完整代码实现(详细注释)

文章目录 前言一、Set与Map概念及场景模型纯Key模型Key-Value模型 Map 的使用Set 的使用 二、二叉搜索树什么是二叉搜索树代码实现二叉搜索树查找操作插入操作删除操作(难点)cur这个节点没有左子树(cur.left null)cur这个节点没有右子树(cur.right null)cur这个节点没有左右子…

springboot与rabbitmq的整合【演示5种基本交换机】

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:后端专栏 📧如果文章知识点有错误的地方,…

基于梯度下降的线性回归(Gradient Descent For Linear Regression)

概述: 梯度下降是很常用的算法,它不仅被用在线性回归上和线性回归模型、平方误差代价函数。在本次,我们要将梯度下降和代价函数结合。我们将用到此算法,并将其应用于具体的拟合直线的线性回归算法里。 梯度下降算法和线性回归算法…

Cell 子刊 | 深度睡眠脑电波调节胰岛素敏感性促进血糖调节

缺乏高质量的睡眠会增加一个人患糖尿病的风险。然而,为什么会这样仍然是一个不解之谜。 近期,加州大学伯克利分校的一组睡眠科学家的新发现为我们揭示了答案。研究人员在人体内发现了一种潜在的调控机制,解释了为什么夜间深度睡眠脑电波能够调…

数据结构(王道)——线性表之静态链表顺序表和链表的比较

一、静态链表 定义: 代码实现: 如何定义一个静态链表 静态链表的基本操作思路: 初始化静态链表: 静态链表的查找、插入、删除 静态链表总结: 二、顺序表和链表的比较 逻辑结构对比: 存储结构对比&#xff…

golang关于成员变量使用:=

错误 错误原因 结构体成员变量不能与:一起用,这是一个语法错误。

Mybatis架构简介

文章目录 1.整体架构图2. 基础支撑层2.1 类型转换模块2.2 日志模块2.3 反射工具模块2.4 Binding 模块2.5 数据源模块2.6缓存模块2.7 解析器模块2.8 事务管理模块3. 核心处理层3.1 配置解析3.2 SQL 解析与 scripting 模块3.3 SQL 执行3.4 插件4. 接口层1.整体架构图 MyBatis 分…

SpringMVC【SpringMVC参数获取、SpringMVC处理响应】(二)-全面详解(学习总结---从入门到深化)

目录 SpringMVC参数获取_使用Servlet原生对象获取参数 SpringMVC参数获取_自定义参数类型转换器 SpringMVC参数获取_编码过滤器 SpringMVC处理响应_配置视图解析器 SpringMVC处理响应_控制器方法的返回值 SpringMVC处理响应_request域设置数据 SpringMVC处理响应_sessi…

【动手学深度学习】--02.Softmax回归

文章目录 Softmax回归1.原理1.1 从回归到多类分类1.2三种常见的损失函数 2.图像分类集2.1读取数据集2.2读取小批量2.3整合组件 3.从零实现Softmax回归3.1初始化模型参数3.2定义softmax操作3.3定义模型3.4定义损失函数3.5分类精度3.6训练3.7预测 4.softmax回归的简洁实现4.1初始…

计网笔记--应用层

1--网络程序的组织方式和关系 网络应用程序在各种端系统上的组织方式及其关系主要有两种: 客户/服务器方式(C/S方式)和对等方式(P2P方式); 2--动态主机配置协议(DHCP) 动态主机配置协…

26 sigmoid Belief Network

文章目录 26 Sigmoid Belief Network26.1 背景介绍26.2 通过log-likelihood推断SBN的后验26.3 醒眠算法——Wake Sleep Algorithm 26 Sigmoid Belief Network 26.1 背景介绍 什么是Sigmoid Belief Network?Belief Network等同于Bayesian Network,表示有…

新手如何自学PostgreSQL(PG)

如果你是一个新手,想要自学PostgreSQL,下面是一些步骤和资源,可以帮助你入门: ①了解数据库基础知识:在开始学习PostgreSQL之前,建议你先了解一些数据库的基础概念和术语,例如表、列、行、SQL查…

【Elasticsearch】搜索结果处理和RestClient查询文档

目录 2.搜索结果处理 2.1.排序 2.1.1.普通字段排序 2.1.2.地理坐标排序 2.2.分页 2.2.1.基本的分页 2.2.2.深度分页问题 2.2.3.小结 2.3.高亮 2.3.1.高亮原理 2.3.2.实现高亮 2.4.总结 3.RestClient查询文档 3.1.快速入门 3.1.1.发起查询请求 3.1.2.解析响应 …

LangChain(6)构建用户自己的Agent

构建用户自己的Agent 编写简单的计算工具编写有多个参数的工具其它更高级的工具 LangChain 中有一些可用的Agent内置工具,但在实际应用中我们可能需要编写自己的Agent。 编写简单的计算工具 !pip install -qU langchain openai transformersfrom langchain.tools …

Spring-Interceptor拦截器

使用步骤 申明拦截器bean,并实现HandlerInterceptor接口 true为放行,false为拦截 2.定义配置类,继承WebMvcConfigurationSupport,实现addInterceptors方法,该方法调用具体的拦截器进行拦截 也可以在配子类通过实现W…

HTPP入门教程||HTTP 状态码||HTTP content-type

HTTP 状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。 HTTP 状态码的英文为…

Springboot+Flask+Neo4j+Vue2+Vuex+Uniapp+Mybatis+Echarts+Swagger综合项目学习笔记

文章目录 Neo4j教程:Neo4j高性能图数据库从入门到实战 医疗问答系统算法教程:医学知识图谱问答系统项目示例:neo4j知识图谱 Vueflask 中药中医方剂大数据可视化系统可视化技术:ECharts、D.jsflask教程:速成教程Flask w…

『分割』 分割圆柱

原始点云 直通滤波过滤后&#xff08;z:0~1.5&#xff09; 分割到的平面 分割得到的圆柱形 代码&#xff1a; #include <pcl/ModelCoefficients.h> #include <pcl/io/pcd_io.h> #include <pcl/filters/extract_indices.h> // 用于提取指定索引的数据 #inclu…