什么是分布式数据库?

GaussDB 专栏收录该内容
5 篇文章 0 订阅

1. 数据库架构设计

数据库常用的架构设计模型有三种:


在这里插入图片描述

1.1 shared-Everything

一般针对于单机而言,完全透明的共享 CPU、内存和IO等资源,并行能力是三种结构中最差的。

1.2 shared-Disk

shared-disk也可以成为shared-storage,每个单元的CPU和内存是独立的,共享磁盘系统,典型产品有Oracle RAC,它是数据共享,可以通过增加节点来提高并行处理能力,扩展能力较好。当存储器接口达到饱和时,增加节点并不能获得更高的性能。

1.3 shared-Nothing

每个处理单元所拥有的资源都是独立的,不存在共享资源。单元之间通过协议通信,并行处理和扩展能力更好。各个节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或者节点间流转。

Shared-Nothing架构的优势:

  • 易于扩展
  • 内部自动并行处理,无需人工分区或优化
  • 最优化的IO处理
  • 增加节点实现存储、查询及加载性能的线性扩展

2. OLTP和OLAP的对比

联机事务处理(OnLineTransaction Processing)是关系型数据的主要应用,面向于基本的、日常的事务处理,例如:零售系统、金融交易系统等。

联机分析处理(OnLineAnalytical Processing)指对数据的查询和分析操作,通常需要对大量的历史数据查询和分析,涉及的历史周期比较长,数据量大。OLAP主要面向于复杂查询操作,聚焦于数据的聚合、汇总、分组计算、窗口计算等数据加工和操作,需从多维度去使用和分析数据。典型的应用场景有:报表、金融风险预警系统、反洗钱系统、数据集市、数据仓库等。

OLTP和OLAP的主要对比如下所示:在这里插入图片描述


3. MPP

3.1 概述

MPP (Massively Parallel Processing) 大规模并行处理,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。

MPP架构具有如下特征:

  • 任务并行执行
  • 数据分布式存储(本地化)
  • 分布式计算
  • 私有资源
  • 横向扩展
  • Shared Nothing架构

MPP并行处理的关键点在于将数据均匀的分布到每一块磁盘上,从而发挥每一块磁盘性能,从根本上解决IO瓶颈问题。数据的均匀分布可以充分的利用物理硬件资源,因此它也是性能调优的基础。数据的均匀分布很大程度上依赖于分布键和具体分布方式的选择,常用的分布方式有哈希和循环等。


在这里插入图片描述

MPP采用shared-Nothing的架构模型,理论上可以做到线性扩展来提升数据仓库的性能。但生产实践中,通常受限于网络收敛比、成本等因素,往往最多只能扩展几百节点。


在这里插入图片描述

MPP在具体架构实现上,通常有无Master和Master-Slave两种方式,无共享Master的结构方式中,所有节点是对等的,客户端可以通过任意的节点来加载数据,不存在性能瓶颈和单点故障风险。


在这里插入图片描述

3.2 MPP数据库

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

对于一张表中的多条记录来说,客户端的数据通过解析器进行解析后,将数据分发给各个处理单元进行处理,每个处理单元将接收到的记录存储到自己的逻辑盘中。GaussDB中解析器对应协调节点CN,处理单元对应数据节点DN。


在这里插入图片描述

当客户端发出查询请求时,解析器同样将查询命令分发给各个处理单元,各个处理单元并行的定位到查询的记录并返回给解析器,解析器将各个处理单元的查询结果合并后返回给客户端。

对于多张表来说,每个表的记录都会分布在各个处理单元上,每个处理单元都会有各个表的记录。理想情况下,记录会均匀的分布到各个处理单元上。


在这里插入图片描述

如果采用的是根据分布键的哈希值来确定记录的分布节点,那么分布键一般在建表时指定,如果没有指定,系统会根据一定的规则选择默认字段作为分布键。

MPP架构下数据库执行排序操作时,每个处理单元会先进行内部的数据排序,然后再将各处理单元数据进行多路归并排序。


在这里插入图片描述

MPP架构下数据库执行关联操作时,如果关联字段是分布键,那么关联的字段必然分布在相同的节点上,则在每个节点分别进行关联,然后将结果集合并;如果关联字段不是分布键,则需要数据在节点间进行流动再进行关联、合并。


在这里插入图片描述

MPP架构下数据库进行聚合操作,每个处理单元会进行节点内部的数据聚合,之后再将各处理单元数据进行汇总。如果聚合字段不是分布键,也会有数据流动。

MPP数据库有对SQL的完整兼容和一些事务的处理能力,对于用户来说,在实际的使用场景中,如果数据扩展需求不是特别大,需要的处理节点不多,数据都是结构化的数据,习惯使用传统的RDBMS的很多特性的场景,可以考虑MPP,例如Greenplum/Gbase等。


3. MPP和Hadoop的比较

Hadoop主要解决的是处理大数据容量和多种类型的数据(结构化、半结构化、非结构化),MPP解决的主要处理结构化数据,在稳定性、范式严格性、复杂数据处理、关联分析、响应速度等方式具有传统优势,Hadoop在内存计算、流处理方面也有较强的优势。

特征HadoopMPPDB传统数据库
扩展能力
系统和数据管理成本
应用开发维护成本
SQL支持
数据规模PB级准PB级别TB级别
计算性能对非关系型操作效率高对关系型操作效率高对关系型操作效率中
数据结构结构化、半结构化和非结构化数据结构化数据结构化数据

综合而言,Hadoop和MPP两种技术的特定和适用场景为:

  • Hadoop在处理非结构化和半结构化数据上具备优势,尤其适合海量数据批处理等应用要求。
  • MPP适合替代现有关系数据机构下的大数据处理,具有较高的效率。

MPP适合多维度数据自助分析、数据集市等;Hadoop适合海量数据存储查询、批量数据ETL、非机构化数据分析(日志分析、文本分析)等。


5. 参考

MPP(大规模并行处理)简介
Hadoop 和 MPP 的比较【详细】
mpp集群(带主备)搭建

huawei分布式数据库培训

  • 0
    点赞
  • 1
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:Age of Ai 设计师:meimeiellie 返回首页

打赏作者

Forlogen

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值