MPP数据库简介及架构分析

news2024/11/27 3:49:57

目录

    • 什么是MPP?
    • 特性
      • 并行处理
      • 超大规模
    • 数据仓库真正适合什么
      • 典型的分析工作量
      • 数据集中化
      • 线性可伸缩性
    • MPP架构技术特性
    • 数据库架构分析
      • Shared Everything
      • Shared Disk
      • Share Memory
      • Shared Nothing
      • Shared Nothing数据库架构优势

什么是MPP?

    MPP (Massively Parallel Processing),即大规模并行处理。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。
    MPP数据库是一款 Shared Nothing架构的分布式并行结构化数据库集群,具备高性能、高可用、高扩展特性,可以为超大规模数据管理提供高性价比的通用计算平台,并广泛地用于支撑各类数据仓库系统、BI 系统和决策支持系统

特性

并行处理

    在数据库集群中,首先每个节点都有独立的磁盘存储系统和内存系统,其次业务数据根据数据库模型和应用特点划分到各个节点上,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。

超大规模

    每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。整个集群称为非共享数据库集群,非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。

数据仓库真正适合什么

典型的分析工作量

    MPP数据库非常擅长最常见的分析工作负载,这些工作负载通常以对子集的查询为特征,并在广泛的行范围内进行汇总。这是由于它们的列式体系结构允许他们仅访问完成查询所需的字段(与事务性数据库相反,事务性数据库必须连续访问所有字段)。
 
    列式体系结构还为MPP数据库提供了对分析工作负载有用的其他功能。这些功能因数据库而异,但通常包括压缩类似数据值,有效索引非常大的表以及处理宽的非规范化表的功能。

数据集中化

    组织通常使用分析型MPP数据库作为数据仓库或集中式存储库,其中包含组织内部生成的所有数据,例如交易销售数据,Web跟踪数据,营销数据,客户服务数据,库存/后勤数据,人力资源/招聘数据以及系统日志数据。由于分析MPP数据库可以处理大量数据,因此组织可以轻松地依靠这些数据库来存储数据,还可以支持来自这些各种业务功能的分析工作负载。

线性可伸缩性

    通过向系统添加更多服务器,分析MPP数据库可以轻松地线性扩展其计算和存储功能。这与垂直扩展计算和存储功能相反,后者涉及升级到更大,功能更强大的单个服务器,并且通常会在规模上遇到障碍。分析型MPP数据库能够如此快速,轻松和高效地进行横向扩展,以使按需数据库供应商能够根据查询的大小自动执行该过程来按比例放大或缩小系统。

MPP架构技术特性

   
MPP 具备以下技术特征:

  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 等接口规范。

数据库架构分析

数据库构架设计中主要有Shared Everything、Shared Disk、Share Memory和Shared Nothing等,我们简要分析一下这几种架构的区别。
在这里插入图片描述

Shared Everything

    Shared Everything指单个主机独立支配CPU、内存、磁盘等硬件资源,其优势是架构简单,搭建方便。但该种架构的缺陷是数据并行处理能力较差,扩展性较低。Shared Everything的典型代表的产品为SQLserver。

Shared Disk

    在Shared Disk架构中,CPU和内存对于各个处理单元私有,但各节点共享磁盘系统。该种架构的典型代表为DB2 pureScale和Oracle Rac。这种共享架构具备一定的扩展能力,可通过节点的增加来提升数据并行处理能力。但当存储器接口使用饱和时,磁盘IO成为了系统资源瓶颈,节点的扩充并不能提升系统性能。

Share Memory

    Shared Memory指多个节点共享内存,各CPU间通过内部通讯网络(Interconnection network)进行通讯。但与Shared Disk类似,但当节点数量过高时,内存竞争(Memory contention)将成为该系统的瓶颈,单纯地堆砌节点数量并不能提升整体数据处理性能。

Shared Nothing

    Shared Nothing的核心思想是各个数据库单元中不存在共享资源,数据处理单元对于各节点完全私有化。早在1986年加州大学伯克利分校的论文中,Michael Stonebraker从当时的数仓原型中对比了Shared Disk,Shared Memory,Shared Nothing架构,并论证了Shared Nothing在数据并行处理中的优势。各单元通过通信协议层交互,处理后的数据会逐步向上层汇总或通过通信层流转于节点间。Teradata公司在1982年申请了YNET技术专利,为无共享的大规模数据并行处理(Massive Parallel Processing)提供了先决基础。在TD数仓架构中,各节点单元通过MPL(Message Passing Layer)的BYNET物理层实现。BYNET是一个双冗余、全双工的网络,以松耦合方式将多个数据处理节点与处理引擎(Parsing Engine)高速连接起来。G行的多元化大数据平台中的TD集群正是采取该架构设计。

Shared Nothing数据库架构优势

1)大数据分析需求
    传统数据库无法支持大规模集群与 PB 级别数据量,且性能受限、扩展性受限,MPP架构数据支持大规模集群以及PB级别数据,性能根据扩展节点性能呈线性关系
2)软硬件一体机成本高昂、扩展受限
    高性能单机服务器的成本十分高昂,生产扩容、测试、开发、容灾都需新购同型号一体机(机柜),并且跨代兼容性问题目前也没有得到很好的解决。MPP架构数据库可根据需要无限扩展。
3)In-memory 技术太贵而且不成熟
    内存成本过高,TB 级别以下,不适合大数据量;MPP架构成本可控,对于TB级数据支持优秀,很适合大数据量。
4)Hadoop 技术的先天不足
    Hive 等 sql-on-hadoop 性能太慢,SQL 兼容性与支持不足,数据安全性无法保证。MPP架构数据库支持通用标准SQL,数据可冗余备份,具有高可用,高安全性。

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

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

相关文章

分享88个C源码,总有一款适合您

C源码 分享88个C源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。 源码下载链接:https://pan.baidu.com/s/1TT87gt66kn5BtLqgRUTlUQ?pwdwje5 提取码…

Java图形化界面---JOptionPane

目录 一、JOptionPane的介绍 二、JOptionalPane的使用 (1)消息对话框 (2) 确认对话框 (3)输入对话框 (4)选项对话框 一、JOptionPane的介绍 通过JOptionPane可以非常方便地创建…

SpringCloud复习之Sleuth+Zipkin链路追踪实战

文章目录写作背景为什么要有链路监控SpringCloud SleuthZipkin能做什么上手实战启动一个Zipkin Server微服务集成SleuthZipkin写作背景 前面复习了SpringCloud Netflix的几个核心组件,包括Eureka、Ribbon、Feign、Hystrix、Zuul,并进行了Demo级别的实战…

高精度减法【c++】超详细讲解

前言 大家学过高精度加法之后,可能已经知道高精度减法的实现方法了吧 如果你还没有学过高精度加法的话,请点击这里(很详细的)—>高精度加法【C实现】详解 最大的问题 最大的问题莫过于负数问题了。其他方法和加法一样。 负…

4.二级缓存解析

文章目录1. 二级缓存配置2. 二级缓存结构3. 二级缓存命中条件4. 缓存空间的理解5. 二级缓存执行流程二级缓存也称作是应用级缓存,与一级缓存不同的,是它的作用范围是整个应用,而且可以跨线程使用。所以二级缓存有更高的命中率,适合…

从南丁格尔图到医学发展史

可视化中,前端用于表现不同类目的数据在总和中的占比的场景,往往会采用饼图。 针对数据大小相近,南丁格尔图的呈现会更加美观。 南丁格尔图,又称玫瑰图,是由弗罗伦斯南丁格尔发明。 弗洛伦斯南丁格尔 开创了护理事业…

二、django中的路由系统

django中的路由系统 django中路由的作用和路由器类似,当一个用户请求Django站点的一个页面时,是路由系统通过对url的路径部分进行匹配,一旦匹配成功就导入并执行对应的视图来返回响应。 django如何处理请求 当一个请求来到时,d…

SpringSecurityOauth2架构Demo笔记

总体分为SpringSecurityOauth2授权码模式演示和密码模式演示 一直下一步,依赖手动导入,SpringBoot版本改成2.2.5.RELEASE,JDK版本1.8 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xml…

Open3D 点云投影至指定球面(Python版本)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 假设球体的相关参数:中心为 C ( x c , y c , z c ) C(x_c,y_c,z_c)

【数据结构和算法】栈—模拟实现Stack和栈相关算法题

文章目录栈的定义Stack模拟实现相关算法题1.栈的压入弹出序列2.逆波兰表达式(后缀表达式)⭐1.什么是逆波兰表达式?如何转换成逆波兰表达式逆波兰表达式如何计算3.有效的括号总结栈的定义 栈作为一种数据结构&#xff0c;是一种只能在一端进行插入和删除操作的特殊线性表。它按…

华为MPLS跨域C2方案实验配置

MPLS隧道——跨域解决方案C1、C2讲解_静下心来敲木鱼的博客-CSDN博客_route-policy rr permit node 10 if-match mpls-labelhttps://blog.csdn.net/m0_49864110/article/details/127634890?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId…

深度学习——长短期记忆网络LSTM(笔记)

长短期记忆网络LSTM&#xff1a; ①隐变量模型存在长期信息保存和短期输入缺失问题&#xff0c;解决方法是LSTM ②发明于90年代 ③使用效果和GRU差别不大&#xff0c;但是实现起来复杂 1.长短期记忆网络 ①忘记门Ft&#xff1a;将值朝0减少 ②输入门It&#xff1a;是否忽…

最容易理解的并查集详解

并查集 并查集&#xff0c;在一些有N个元素的集合应用问题中&#xff0c;我们通常是在开始时让每个元素构成一个单元素的集合&#xff0c;然后按一定顺序将属于同一组的元素所在的集合合并&#xff0c;其间要查找一个元素在哪个集合中。 比如下面这幅图&#xff0c;总共有 10 …

MySQL之存储过程

MySQL存储过程1、基本介绍1.1、介绍存储过程&#xff1a;1.2、特点1.3、基本语法1.3.1、delimiter1.3.1、创建存储过程1.3.2、调用存储过程1.3.3、查看存储过程1.3.4、删除存储过程2、变量2.1、系统变量2.1.1、查询(会话、全局、模糊、精确)2.1.2、设置系统变量2.2、用户定义变…

IB学生必须具备的三大特质

以往的专栏亦提及过&#xff0c;修读IB课程要面对几大挑战。而要应对这些挑战&#xff0c;IB学生须具备以下三大条件&#xff1a; 时间管理能力 IBDP 首先&#xff0c;要对时间分配掌握得很好。两年的IB预科课程非常紧凑&#xff0c;不但每科都有其内部评核&#xff08;Interna…

VMware17虚拟机安装Ubuntu最新版本(Ubuntu22.04LTS)详细步骤

目录 一、概述 二、下载Ubuntu 22.04.1 LTS 三、在VMware虚拟机下安装Ubuntu22.04 四、配置网络 一、概述 Ubuntu是基于Linux内核开发的&#xff0c;免费下载&#xff0c;使用和分享的开源系统。如果需要在Linux下开发程序&#xff0c;这是一个很好的选择。本文介绍了Ubuntu最…

【问题解决】Tomcat启动服务时提示Filter初始化或销毁出现java.lang.AbstractMethodError错误

问题背景 最近在开发项目接口&#xff0c;基于SpringBoot 2.6.8&#xff0c;最终部署到外置Tomcat 8.5.85 下&#xff0c;开发过程中写了一个CookieFilter&#xff0c;实现javax.servlet.Filter接口&#xff0c;代码编译期正常。部署到外置Tomcat 8.5.85 下&#xff0c;在控制…

【Java寒假打卡】Java基础-类加载器

【Java寒假打卡】Java基础-类加载器概述类加载时机类加载的过程-加载类加载的过程-链接类加载的过程-初始化类加载器的分类类加载器-双亲委派模型类加载器-常用方法概述 负责将字节码文件加载到内存中 类加载时机 创建类的实例对象调用类的类方法访问类或者接口的类变量&am…

SymPy符号运算库与latex数学公式

SymPy符号运算库与latex数学公式sympylatexsympy SymPy是一个用于以符号运算为主的符号数学的Python库。它的目标是成为一个全功能的计算机代数系统(CAS)&#xff0c;同时保持代码尽可能的简单&#xff0c;以便易于理解和易于扩展。SymPy完全是用Python编写的。 官网地址:http…

【linux kernel】Linux设备驱动模型 | bus

文章目录一、导读二、与总线相关的数据结构&#xff08;2-1&#xff09;struct bus_type&#xff08;2-2&#xff09;struct subsys_private三、总线的初始化四、总线的操作接口&#xff08;4-1&#xff09;总线的注册&#xff08;4-2&#xff09;总线的注销&#xff08;4-3&am…