登录 / 注册
IT168技术开发频道
IT168首页 > 技术开发 > 技术开发评论 > 正文

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

2016-12-21 14:49    it168网站原创  作者: IT168 编辑: 田晓旭

  【IT168 评论】时至腊月,数据库界最劲爆的消息当属阿里云发布的云数据库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是什么?联机事务处理(OLTP-On-Line Transaction Processing)是以在线交易的方式处理一般即时性的作业数据,OLTP通常被运用于自动化的数据处理工作,比如:订单输入、金融业务等需要反复性日常性的交易活动。在OLTP的操作场景中,用户的并发操作量会非常大,系统实时进行数据操作且必须快速响应,查询作业通常只会检索少量条数据,以此来实现用户的业务交互。OLTP在各行各业的应用非常多,如银行、保险、电信等,这些行业的数据库在OLTP上的应用技术已经相对成熟。

  在线分析处理(OLAP:On-Line Analytical Processing),是一套以多维度的方式来分析数据,能弹性地提供积存(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 个特点:

  不需要进行手工调优

  支持已有业务工具和应用

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

  数据仓库加速器工作原理

  如下图所示,采用Sinoregal DS数据库作为数据仓库服务器,用户详细的分析数据保存于此,用户可以基于该数据进行趋势分析、辅助决策、业务优化等各式各样分析;并在方案中增加数据仓库加速器,SWA可以部署在单台或多台基于Linux 服务器上以此形成集群,同时与数据仓库服务器进行沟通,通过将定义的数据集市数据压缩并完全保存在内存中来极速提高数据仓库查询效率。

  当数据集市部署到SWA后,需要装载数据到数据集市中。数据从Sinoregal DS数据库装载到SWA时,SWA会自动对数据进行压缩、并按照频度分区方法对压缩数据进行分区并存储在内存中。当用户向Sinoregal DS数据库发出查询请求时,数据库优化路由器评估用户查询请求,并且将其自动匹配,如果满足条件,该查询请求将被路由到SWA中来加速数据查询,并将查询结果返回给Sinoregal DS数据库,最终返回给应用程序。

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

  数据仓库加速器除了内存数据库外还有哪些关键技术特点:

  1. 深度数据压缩

  SWA采用哈夫曼编码对数据进行压缩,基本可以达到3:1以上的压缩比,可以保证将数据集市的数据全部保存到内存中。

  2. 深度列式存储技术

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

  深度列式存储技术比传统的列式存储技术更优。有了“深度列式存储技术”和“处于压缩态的数据无需解压缩就可被处理的技术”后,查询处理时不再需要磁盘I/O,内存数据仓库成为现实。列式存储技术将同一数据列的各个值存放在一起。由于同一数据列的各个值存放在一起,我们可以得到更高的压缩比率。OLAP 类型的查询只对事实表中的少量数据列感兴趣。如果使用的数据库是列式存储数据,您可以只读取关注“数据列”的“数据页”。对于存取大量数据行和少量数据列的查询来说,列式存储可以大大改进效率。

  3. 频度分区技术

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

  SWA对数据集市里的每个数据表,通过分析一个或多个数据列里经常出现的值,将紧密相关的一些数据列组成一个数据值组(tuplet)。在上面的图示中,产品(product)和产地(origin)这两个数据列紧密相关,所以将这两个数据列组成一个数据值组。哈夫曼编码(Huffman encoding)的好处是用“最少的数据位”对“最经常出现的值”进行编码。也就是说紧密相关的数据会聚拢在一起,这项技术改进了压缩的效率,并且可被用于判断数据值组是否满足查询语句中的过滤条件,提供分区排除功能。由于对查询语句的处理是基于压缩的数据,处理的速度将非常快速。

  4. 高度并发与高效扫描

  高度并发与高效的扫描为快速的查询处理建立了坚实的基础。为了充分的利用CPU资源,SWA可以动态的产生合适数量的高并发线程。而扫描操作是基于被压缩的数据,主要利用了哈夫曼编码的优势。“判断是否满足过滤条件”和“group by”是基于被压缩的数据的,而聚合函数(例如求平均值)是基于解压缩后的数据的。哈夫曼编码技术还具有密集哈希函数(dense hash function)的作用,从而使得整个哈希表可以被缓存进CPU的L2 Cache中,因此查找速度非常快。#FormatImgID_4#

  星瑞格数据库混和应用平台架构

  星瑞格数据库混和应用平台架构如下图:

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

  星瑞格数据库混和应用平台优势:

  1. 单一类型数据库

  数据仓库的数据会有许多来源,源数据除了来自联机事物处理的核心业务数据库外,在互联网、物联网快速发展的时代还会有许多各式各样类型的数据生成,比如说访问轨迹或传感器回传数据,如果这些数据都采用单一类型数据库处理,在数据交换上相对简单的多,可以省去复杂的异构数据转换。

  2. 响应速度快

  星瑞格数据仓库加速器SWA具备分布式架构、内存数据库、深度压缩与列式存储等多项技术优势,可以加速分析型查询,在海量数据下仍能保障快速秒级响应速度。

  3. 分布式架构

  星瑞格数据仓库加速器SWA可以采用单台服务器或多台服务器形成集群来部署,集群节点可弹性扩充,足以因应大数据分析应用。

  4. 开发与运维成本低

  星瑞格数据库Sinoregal DS与数据仓库加速器SWA是同属星瑞格数据库家族产品,SWA是为星瑞格数据库加速分析查询而诞生,两者紧密结合,架构单存,部署简易,投入的开发与运维成本相对较低。#FormatImgID_6#

  结论

  阿里发布了HybridDB方案, 在星瑞格看来,对IT界看到的是数据库新的选择方向,星瑞格数据库早已可以支持OLTP和OLAP的业务,对于海量数据的查询搭配了数据仓库加速器(SWA)快速响应技术,我们将星瑞格数据库与阿里HybridDB的技术做个对比:

  1. 数据类型支持

  阿里HybridDB支持多种混合数据类型的SQL统一查询,包括:传统数据类型如:字符、数字、浮点、日期等与非结构化数据:JSON、XML、GIS地理信息数据等,这些数据类型Sinoregal DS早已支持,另外Sinoregal DS还内置了时间序列处理引擎,响应物联网生成的与时间相关数据的处理,不但可以节省存储空间,也可以加快时间序列数据的计算。

  2. 存储支持

  阿里HybridDB支持混合的数据存储,包括:行存、列存、SSD/HDD本地存储、OSS云存储; 相较Sinoregal DS而言,存储使用技术上早已成熟,存储空间使用本地或云端存储都没问题,为了省去操作系统对IO的开销,更支持裸设备,行式、列式也能支持,甚至还可以做深度压缩,不但空间使用优化了,查询速度也大大提升。

  3. 数据库类型

  阿里HybridDB为了应对海量数据分析,引进了Greenplum支持, 就整体而言是加上MySQL、PostgreSQL三种类型数据库兜在一起,这样的运维与开发成本势必相对提高,技术的养成成本也会提高。相较星瑞格数据库,单一类型数据库支持联机型事物处理,也支持海量数据分析,而且有高扩展性和快速响应机制。

  综观上述企业,如果想要打造海量数据分析平台,不论是部署在云上还是云下,采用星瑞格数据库是一个非常好的选择。

标签: 数据库 , 阿里巴巴
相关文章
  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫码送文库金币

编辑推荐
系统架构师大会
系统架构师大会
点击或扫描关注
IT168企业级微信关注送礼
IT168企业级微信关注送礼
扫描关注
首页 评论 返回顶部