南大通用沈丽萍:大数据时代的数据库技术与应用

刚才我就给大家讲了一下我们整体的大数据推动IT架构变革的整个情况。下面给大家重点介绍一下MPP数据库的主流技术。可能大家有些人还不太明白,MPP究竟是什么意思?它就是大规模并行处理系统,系统有许多松偶合处理单元组成,每个单元内的CPU都有自己私有的资源,如总线、内存、硬盘等。在每个单元内都有操作系统和管理数据库的实例副本,这种结构最大的特点在于不共享资源。MPP这个架构,对应有一个SMP,那个架构它的CPU是共享内存,所以它不容易扩展,因为每个CPU都要共享内存,MPP是在这个单元内的CPU不占内存,而彼此之间,每个单元之间是松偶合的,基本上我们认为每个单元就是一个独立的服务器,就是多个服务器的节点,把它组合起来进行并行处理。

对于MPP的数据库,它应该具有Shared Nothing架构,任务并行执行,数据分布式存储,分布式计算,横向扩展,这个横向扩展非常重要。MPP的架构它像我们新型的NoSQL的产品,它选用MPP架构,Hadoop产品也是MPP的架构。我们这里给大家讲的MPP数据库是指NewSQL这个阵营里的产品。

我们一般大数据的平台分为四层,分为基础设施层、采集和预处理层,还有数据处理平台,以及上层的应用平台。我们MPP数据库就是在处理平台上,它跟传统的事务型数据库,以及Hadoop它们一起都是做数据处理的。我们知道MPP技术不是说现在才提出来的,它是很早,在我们80年代的时候,大机时代学术界就已经提出它是解决数据的一种方式。但是,确实有这么多数据的时候,新一代的数据处理技术都要选择MPP这个架构呢?主要是来自于它支撑它的软硬件的发展。首先,是Internet推动了网络技术的发展,并且性价比不断的提升。我们知道现在的网络,千兆支持到万兆,甚至支持到四万兆的网络,相对来说交换机、网卡的价格确实在下滑的。另外,对于支撑我们数据库的服务器它也是在不断的发展,它现在基本上都能支持多核、多CPU的这种技术,而且支持大内存,现在有120G、256G的。所以,这块PC服务器价格本来就便宜,但是它的性能不断的提升,能达到类似小型机的性能,而且支持数据库产品的操作系统,Linux系统也是不断的成熟。这些都推动了MPP的技术有了可靠的基础。大数据它的数据爆炸式的增长,以前单个SMP系统已经无法应付数据增长带来的压力。所以,我们必须要有新的技术了。所以,基于的大数据平台技术一般都是训练MPP的架构。

MPP的数据库我们认为它要维持关系型的模型。SQL就像是我们在数据库的行业里头大家说的普通话,经过这么多年的发展,SQL已经成为大家做英文开发的一种标准的语言,如果新的数据库产品不支持,就听不懂人家说的话了,所以我们认为MPP数据库应该支持SQL92的标准,甚至要做一些扩充,另外它也必须支持存储过程,因为很多处理都是写到存储过程由数据库来完成运算的。所以,虽然是一个新的数据库也必须要支持这个过程。另外,我们也要支持事务,以及ACID的约束,ACID主要指一个事务执行的原则性、一致性、隔离性和持久性。分布式的架构自然也要遵守CAP的原则。主要是MPP厂家告诉我的,他们认为C就是一致性,A是可用性,P是分区容忍性。理论上说这三个在分布式架构里头不能三个都支持,只能三选二。我们作为一个分布式数据库,当你出现异常的情况,就要选你是支持C,还是支持。MPP数据库一般会选择C,就是一致性,当出现故障的时候,会有意识把一些功能让它减弱,然后用同步机制修复这个节点,等节点恢复以后它再正式的运行。我们知道传统的关系型数据库其实它支持的是CA,是一致性和可用性的。

数据库架构的发展趋势,就是从单机到分布式,最早是单机分布式,特点是计算集中、存储集中。后来要提升性能,出现了Shared  DIS(音译)数据库,最单行的就是Oracle数据库,这个也能满足一定的大数据的需求,但是它有一个问题的,上层的节点数增加,都要到统一的磁盘上来取,瓶颈就会在共享数据这个磁盘上。另外,这种也无法避免单点故障,万一数据坏了,上层的节点数也多没有用。数据体量再大的情况下已经超出了你这样架构的限制了,已经存不下了,我们再发展就是MPP+Shared  Nothing架构的。单台服务器的处理性能是有限的,我们的数据也是有限的,这样就是我正好数据也小,正好普通的PC服务器就能处理有限的数量的数据,我这个架构好处在于我可以扩展好多个节点,通过这些节点并行运算得出最终的结果。像Hadoop也是这种架构。从用户的角度来说,共享架构一般是采用小型机,硬件成本都是上千万的级别。我们现在用Shared  Nothing和MPP架构可以用普通的低成本的X86  PC服务器就可以满足。后续数据量再大的时候还可以投入横向扩展,有扩展能力。所以,现在MPP数据库也成为大数据的选型之一。