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

既然很多行业的系统里头用了将近30年传统的关系型数据库,在数据体量小的时候大家用的都已经很成熟和很完备了。我们大数据现在爆炸式的增长,传统的关系型数据库是否可以支撑大数据的应用呢?因为传统的关系型数据库基本上是属于SMP的架构,基本是单机,或者共享存储的架构,这种架构难以处理海量数据,因为不能很好的扩展。数据体量这么大,其实它需要更多的资源,数据无限的扩充,它就需要无限快的处理器和无限容量和(无限带宽的存储,对客户来说他希望有这样的设备,而且不希望价格太贵。当然没有一个独立的服务器可以提供无限快的处理。那么,一个解决方法就是我们用有限快的服务器成立无限的数量能达到无限快的处理能力,这也就是我们说的分布式MPP。

我们看一下,我们刚才讲了以前一直都用传统的关系型数据库来支撑我们的各种系统的应用。这里头我们把应用分为事务类和分析类的应用,随着互联网的发展,我们也可以做一些互联网上的应用。当时因为数据体量比较小,所以一种架构支持多类应用,随着数据体量不断的增大,一种架构它在分析类以及互联网上都不适合了。我们说大数据时代导致这个架构的多元化,也需要把它的应用进行细分和拆分。对于事务类的NITP这类的应用还是可以使用传统的关系型数据库,我们称之为OldSQL。对于分析类的这种应用,像大数据平台它基本导入的都是历史数据,已经发生过的数据加载到大数据平台来,它主要做分析,像客户的营销、决策,靠这些分析来得到有力的数据支撑。这样我们就需要用一种新型的数据库。在互联网上大家有有目共识,现在很多互联网企业都用NoSQL,Hadoop为基础的架构支撑大数据的应用。

随着数据体量的增大,我们认为大数据平台应该使用可选择的平台,就是NewSQL  MPP的数据库以及以Hadoop为主的NoSQL的架构。这三大阵营其实有很多产品,大家比较熟悉的事务型的OldSQL里面最典型的就是Oracle,还有DB2等。NewSQL领域老的就是TERADATA,银行以前建大数据平台的时候没有选择,只能选择TERADATA,这个不是说它不好,是因为它得用一体机设备。在互联网的NoSQL领域都是以Hadoop生态圈的一些产品为主,而且很多公司都在做这方面的,因为它是开源的,而且它不是一个产品,它是一系列的产品。所以,它不像NewSQL都是商业的数据库产品。后面还有Hadoop专门的公开课,所以我就不多做介绍了。

传统的关系型数据库存储方面以行存储,都是行存储,一行记录存在一个块里头,取数据的时候非常方便。架构基本上是SMP的架构。NewSQL是以列存储,按列进行存储,它也是支持关系型的。它的架构就已经扩展到MPP分布式架构上了。那么,NoSQL就是以SDFS,分布式存储进行存储的,另外它用Key-Value,它的架构也是MPP的。大数据来了,各个阵营的产品其实它们也都做了很多的技术创新。分别在内存计算、分布式计算,以及采用一些新的硬件,像我们说的闪存,还有高速网络,4GB的 Infiniband网络都可以支持,都是为了提升性能。

大数据的平台,具体这三个阵营里头应该有什么样的解决方案呢?目前大数据平台处理的数据应该是一个全量数据,而不是样本采集的一些个别的数据,是全量数据。而且它建立大数据平台,它不是说只是做这一个系统的这样一纬分析,是把多个数据源的数据都加载到这一个平台上来,进行多维的多元的分析,这么大的体量用一种架构肯定是不行的。我们有这三大阵营的产品,我们就要发挥他们各自的优势,取长补短。我们说传统事物型的数据库主要适用于下数据量,而且业务逻辑复杂,并发度高的事务型的业务场景,主要是OLTP。新型MPP的数据库适合处理大规模的复杂分析,而且是TB级别的数据的查询、关联这些场景。Hadoop  NoSQL平台适合处理非结构化数据,还有流数据处理,以及大规模批量的目的作业,这是它的长项。所以,在大数据时代可以说要把应用做在分而治之数据处理的综合的解决方案。

既然这三个产品它们要混合使用,那么,它们也有一个选型从数据量来看。TB级别,关于OLTP的应用,处理高价值密度的结构化数据,我们还是采用传统的关系型数据库,在TB到PB级别的数量量上,我们处理分析类应用我们就用新型的MPP  数据库,对于更大规模数据处理的时候,它的价值密度其实已经很低了。我们这就需要用Hadoop为主的NoSQL。但是,我们可以用NoSQL的技术可以把低价值密度的数据经过一些转换、清洗,或者是一些它可以把它深度的汇总,或者抽取出有价值的这种数据,然后它体量就会减少,然后再加载到MPP数据库里头,然后再做复杂的分析、统计。所以,未来大数据应用的趋势是混搭架构。我们对于在线的OLTP业务有事务型的数据库,把数据可以加载到MPP的数据库里头。或者有Hadoop,它在处理的一些低价值密度的数据,处理完的数据要灌到MPP数据库里头,然后由MPP数据库做对上层的应用的核心支撑分析类的应用。