什么是分布式数据库?

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分布式数据库培训

<think>好的,我需要回答用户关于分布式数据库的概念、定义以及数据存储方式的问题。首先,我应该从系统提供的引用中找到相关的信息,然后组织成一个清晰的中文回答。同时,按照用户的要求,回答中需要包含行内数学表达式和独立公式,但用户的问题似乎不涉及数学内容,所以可能需要判断是否需要加入相关公式。此外,生成相关问题并在回答末尾添加引用标识。 首先,用户的问题有三个部分:分布式数据库的定义、分布式数据存储的方法、数据存储的途径。根据引用内容,引用1提到了分布式数据库的基本定义和特性,数据分片的四种方式,以及分布透明性。引用2讨论了数据水平拆分方案,包括复制和分片技术。引用3补充了分布式数据库系统的组成和透明操作的特点。 接下来,我需要将这些信息整合成结构清晰的回答。定义部分可以结合引用1和引用3,说明分布式数据库的定义和组成。数据存储方法方面,引用2提到了复制(replication)和分片(sharding),需要详细说明这两种方法。数据存储途径可能涉及数据分片的四种方式,如水平分片、垂直分片等,来自引用1。 同时,用户提到要生成相关问题,我需要根据内容提出相关的三个问题,例如分片与复制的区别、透明性的类型等。还要注意引用标识的正确添加,例如在定义部分末尾加上[^3],在分片方法处引用[^2]等。 需要检查是否有数学表达式需要应用,比如分片算法可能涉及哈希函数或范围分片的表达式,例如使用$h(k) \mod n$来表示哈希分片。但用户的问题可能不涉及复杂数学,所以可能需要适当判断是否必要加入。 最后,确保回答符合中文语法,使用正确的术语,结构清晰,分点说明,并在末尾列出相关问题。</think>### 分布式数据库概念及存储方式解析 #### 1. 分布式数据库定义 分布式数据库系统(DDBS)由分布式数据库管理系统(DDBMS)和分布式数据库(DDB)组成。其核心特性是数据分散存储在多个物理节点上,但对应用程序表现为单一逻辑数据库。例如,用户可通过统一接口访问数据,而无需关注数据实际存储位置或管理细节[^3]。 #### 2. 分布式数据存储方法 **核心方法分为两类:** 1. **数据复制(Replication)** 将同一数据副本存储在不同节点,提升可用性和读取性能。例如,华为云采用三副本冗余存储,确保数据可靠性。 2. **数据分片(Partition/Sharding)** 将数据按规则拆分为多个子集(分片),分布到不同节点。常用分片方式包括: - **水平分片**:按行拆分,如按用户ID范围分配数据。 - **垂直分片**:按列拆分,如将用户表分为基本信息与交易记录。 - **哈希分片**:通过哈希函数$h(k) \mod n$确定数据位置,确保均匀分布[^2][^1]。 #### 3. 数据存储途径的关键技术 **分片透明性**是分布式数据库的重要特性,具体包括: - **分片透明性**:用户无需感知数据如何分片。 - **位置透明性**:无需知晓数据物理存储位置。 - **局部数据模型透明性**:允许不同节点使用异构数据库(如MySQL与Oracle共存)。 **典型分片方案示例:** $$ \text{分片键} \rightarrow \begin{cases} \text{范围分片:} & \text{如订单按日期分区} \\ \text{哈希分片:} & \text{如用户ID通过哈希映射到节点} \end{cases} $$ ####
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值