从阿里HybridDB看数据库选择的新方向(上)
从技术角度而言,OLAP场景不仅涉及的数据量要大而且要求分析的结果也要实时返回,那么,相应的SQL查询也就越来越复杂。技术指标上,除了支持复杂的数据类型外,还要能满足海量数据的实时分析,对于数据库而言是一个非常重大的考验。
阿里已经在往这方面思考和行动,对于星瑞格软件的数据库(Sinoregal DS)来说,已早已支持OLTP+OLAP混和型的数据仓库。不管是云上或云下,都是同一类型数据库,相较于HybridDB,Sinoregal DS数据的交换就简单多了,不需要考虑数据型态不同的转换问题,而在开发与运维方面更是优势,因为只有一种类型的数据库。那么,Sinoregal DS到底是怎么做到的?
在讨论Sinoregal DS到底是怎么做的之前,我们先来谈一谈OLTP和OLAP是什么?
OLTP是以在线交易的方式处理一般即时性的作业数据,OLTP通常被运用于自动化的数据处理工作,比如:订单输入、金融业务等需要反复性日常性的交易活动。在OLTP的操作场景中,用户的并发操作量会非常大,系统实时进行数据操作且必须快速响应,查询作业通常只会检索少量条数据,以此来实现用户的业务交互。OLTP在各行各业的应用非常多,如银行、保险、电信等,这些行业的数据库在OLTP上的应用技术已经相对成熟。
OLAP是一套以多维度的方式来分析数据,能弹性地提供积存(Roll-up)、下钻(Drill-down)、和枢纽分析(pivot)等操作,多用于决策支持系统、商务智能或数据仓库。其主要的功能,在于方便大规模数据分析及计算,对决策提供参考。
早期的数据分析,并没有专门的、独立的数据库支撑,一般是直接与OLTP业务放在同一个数据库中完成。但随着数据量与业务量的增长,OLAP这类的分析操作在执行时会影响到OLTP业务交易性能下降。因此,业界开始将OLTP、OLAP拆分成两套不同的数据库进行处理。
并且,这两类数据库对数据的处理方式也不同,OLAP数据库数据来源通常来自OLTP数据库,通过应用程序或ETL软件持续或定期抽取数据库,让业务交易与报表分析进行分离。随着互联网时代的到来,数据量激增,OLAP业务所要分析的数据量也随着时间积累而增多,单台服务器的性能已经无法满足OLAP分析海量数据时所带来的压力,因此也催生出可以支持大规模并行处理(Massive Parallel Processing,MPP)的分布式数据仓库。
MPP分布式数据仓库基本上可以看成是一种高性能扩张,每个节点可处理的数据量及计算能力需要支持横向扩展,而且要保障性能,也就是用户如果是在数百GB的数据量下,可以在秒级别内查询出结果,那么将数据量平衡扩展多个节点到TB甚至PB时,相同对比的查询依然可以达到秒级别的响应速度,不会因为数据量的增加而影响查询速度。OLAP通常要求海量数据的查询在几分钟、几秒,甚至毫秒级返回结果,因此,对于服务器、网络及数据库的架构都提出了很高的要求,而这些Sinoregal DS早就已经支持了。
那么,SWA创新的关键在哪里?
SWA是内存数据库,内存访问速度和磁盘访问速度之间的差距随着时间的推移越来越大。在过去,内存的价格昂贵,因此传统数据库系统使用的内存较少,用户需要通过减少磁盘I/O 量和缓存技术来对传统数据库系统进行优化。随着内存价格的不断下降,用户已经可以承受TB 级内存的价格。现在,商用服务器现已可支持TB 级的内存,所以SWA 顺应这一趋势,在内存中压缩、存储所有数据,消除了磁盘I/O。现今CPU 处理器有更多的核(core)和更大的处理器内置缓存。于是,SWA 加大并行度,减少进程间的同步,使用更好的算法以充分利用处理器内置缓存。这些技术将查询性能提升到一个新的高度。这些技术使得SWA成为一个简单且优雅的设计。使用星瑞格数据仓库加速器有3 个特点:
01
02
03
相关文章