亚信数据杨博:大数据数据库技术简介与分类分析

◎大数据生态

说起大数据生态,不得不提大数据生态系统图,而大数据行业却不断的发生着巨变,目前的这张图应该还算比较新了。

创业者们蜂拥至这个行业,这个行业正变得越来越拥挤。Hadoop似乎已经奠定了其作为整个大数据生态系统的关键部分,Spark是另一个基于内存计算的开源分布式计算框架,它试图填补Hadoop的弱项,提供更快的数据分析和良好的编程接口。

分析工具领域变得异常活跃,数据应用领域正如预测一样逐渐成为重心。一些类别如数据库无论是NoSQL还是NewSQL和社交数据分析正日趋成熟。

今天就先让我们从众多内容当中,先挑选一块和大家探讨探讨,先从数据库说起吧。

◎数据库技术 传统vs新型

从大的角度讲,可以简单的将数据库分为两类:

●传统SMP架构的数据库,主要指代的是传统的关系型数据库,例如DB2、Postgrel,MySQL等。

●新型数据库,主要指代为支持大规模数量集,高并发要求,高可扩展性等孕育而生的新型数据库。包括目前大数据生态当中主流MPP,NoSQL,NewSQL数据库等。

传统数据库和新型数据库的一个主要区别是SMP架构VS分布式/并行。

◎数据库理论基础

理论基础 - 服务器系统架构

●SMP(Symmetric Multi-Processor)

SMP是对称多处理器结构的简称,指代多个CPU对称工作,无主次或从属关系。各个CPU共享相同的物理内存,每个CPU访问内存中的任何地址的路径是相同的(访问的时间是相同的),因此SMP也被称为一致存储器访问结构(UMA: Uniform Memory Access)。

●NUMA(Non-Uniform Memory Access)

NUMA是非对称的多处理结构,刚好与SMP相对,多个CPU工作时,对内存的访问路径不同。NUMA架构的提出主要是解决SMP架构下多CPU扩展的问题。

●MPP(Massive Parallel Processing)

和NUMA不同,MPP提供了另一种进行系统扩展的方式。它由多个SMP服务器通过一定的节点互联网络进行连接,协同工作,完成相同的任务,从用户的角度来看是一个服务器系统。

SMP和NUMA都主要指向单一的计算机系统,而MPP则有点集群的意思了

理论基础 - ACID基本理论

●原子性(Atomic)

整个事务要么成功,要么失败,杜绝部分成功

●一致性(Consistent)

事务的运行并不改变数据库中数据的一致性。例如,完整约束了a+b=10,一个事务改变了a,那么b也应该随之改变

●独立性(lsolated)

也称作隔离性,指两个以上的事务不会出现交错执行的状态,因为这样不可能会导致数据不一致

●持久性(Durable)

事务执行成功以后,该事务所对数据库做的更改便是持久的保存在数据库之中,不会无缘无故的回滚

传统基于关系模型的数据库遵从ACID基本理论,而新型分布式数据库则并不完全遵从该理论

理论基础 - 分布式CAP理论

●一致性(Consistent)

即数据的?一致性,简单的说就是数据复制到N台机器,如果有更新,要N台机器的数据一起更新

●可用性(Availability)

在集群中一部分节点故障后,集群整体还能响应客户端的读写请求

●分区容错性(Tolerance)

分区发生但不影响整个系统的运行:

基于传统关系型模型数据库更关注CA,新型NoSQL数据库更关心CP,AP

◎数据库分类与对比分析

根据体系架构来分类

从数据库的体系架构来看,可以将数据库分为:

●SMP Database

这类数据大多指代的是基于传统关系型数据库模型的数据库,比如IBM的DB2,Postgres,MySQL等

●MPP Database

基于MPP体系架构的数据库,例如Teradata, Greenplum, Netezza等

●Distribute Database

严格来讲MPP也应该属于分布式数据库,但这里更多指的是新型NoSQL和NewSQL数据库,例如Hbase, Cassandra, Hive, mongoDB等

根据SQL支持来分类

根据数据库对SQL的支持情况,可以将数据库分为:

●SQL Database

而SQL数据又可以细分为:

?Old SQL传统SQL数据库

?New SQL新型SQL数据库

?MPP

?SQL>