从阿里HybridDB看数据库选择的新方向(上)

2022-03-24 00:00:00 数据 分析 数据库 业务 海量


导读

时至腊月,数据库界劲爆的消息当属阿里云发布的云数据库HybridDB线上产品,HybridDB是基于数据库Greenplum的开源版本研发。阿里好好地用MySQL和PostgreSQL不就行了?为啥要劳神费力地又基于Greenplum的开源版本研发HybridDB方案?专家认为,大数据时代MySQL和PostgreSQL已经无法支撑海量数据多维度的OLAP分析处理技术,并且,已有的两个主流开源数据库MySQL和PostgreSQL主要针对的是OLTP环境,在OLAP在线分析需求下的性能明显不足。尤其是MySQL在大规模分析操作时多表Join的性能是当前互联网用户的一大痛点。




从技术角度而言,OLAP场景不仅涉及的数据量要大而且要求分析的结果也要实时返回,那么,相应的SQL查询也就越来越复杂。技术指标上,除了支持复杂的数据类型外,还要能满足海量数据的实时分析,对于数据库而言是一个非常重大的考验。

阿里已经在往这方面思考和行动,对于星瑞格软件的数据库(Sinoregal DS)来说,已早已支持OLTP+OLAP混和型的数据仓库。不管是云上或云下,都是同一类型数据库,相较于HybridDB,Sinoregal DS数据的交换就简单多了,不需要考虑数据型态不同的转换问题,而在开发与运维方面更是优势,因为只有一种类型的数据库。那么,Sinoregal DS到底是怎么做到的?

什么是OLTP及OLAP

在讨论Sinoregal DS到底是怎么做的之前,我们先来谈一谈OLTP和OLAP是什么?

1
联机事务处理(OLTP-On-Line Transaction Processing)

OLTP是以在线交易的方式处理一般即时性的作业数据,OLTP通常被运用于自动化的数据处理工作,比如:订单输入、金融业务等需要反复性日常性的交易活动。在OLTP的操作场景中,用户的并发操作量会非常大,系统实时进行数据操作且必须快速响应,查询作业通常只会检索少量条数据,以此来实现用户的业务交互。OLTP在各行各业的应用非常多,如银行、保险、电信等,这些行业的数据库在OLTP上的应用技术已经相对成熟。


2
在线分析处理(OLAP:On-Line Analytical Processing)

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早就已经支持了

Sinoregal DS完全满足OLTP+OLAP应用
Sinoregal DS配上独有的数据仓库加速引擎(SWA-Sinoregal Warehouse Accelator),即可处理OLTP应用,更可以打造企业单一类型数据库与数据仓库服务平台;即可作为联机事物业务的处理,也可以服务海量数据分析型业务。原本用户在数十亿笔数据表上的查询需要花30多分钟完成,而使用SWA后只需要几秒就能完成,在没有进行任何查询优化或应用程序的修改下,性能可以提升数百倍甚至千倍。其实,SWA就是设计来处理秒级别的海量数据分析的加速引擎,不需要对应用程序作任何修改,也不需要额外的维护成本,同时,由于是相同的数据库引擎,也不需要为异构数据库烦恼。


那么,SWA创新的关键在哪里?

SWA是内存数据库,内存访问速度和磁盘访问速度之间的差距随着时间的推移越来越大。在过去,内存的价格昂贵,因此传统数据库系统使用的内存较少,用户需要通过减少磁盘I/O 量和缓存技术来对传统数据库系统进行优化。随着内存价格的不断下降,用户已经可以承受TB 级内存的价格。现在,商用服务器现已可支持TB 级的内存,所以SWA 顺应这一趋势,在内存中压缩、存储所有数据,消除了磁盘I/O。现今CPU 处理器有更多的核(core)和更大的处理器内置缓存。于是,SWA 加大并行度,减少进程间的同步,使用更好的算法以充分利用处理器内置缓存。这些技术将查询性能提升到一个新的高度。这些技术使得SWA成为一个简单且优雅的设计。使用星瑞格数据仓库加速器有3 个特点:

01

不需要进行手工调优

02

支持已有业务工具和应用

03

与现有的数据库架构共同工作

相关文章