APP下载

基于内存计算技术的高性能数据中心研究

2017-05-31蔡颖嘉沈松郑俊华

软件导刊 2017年5期
关键词:数据仓库大数据

蔡颖嘉 沈松 郑俊华

摘要摘要:大数据时代数据量剧增,信息增长速度超乎想象,成为影响数据中心性能的关键因素。如何在海量数据处理中保持良好性能是一个极具挑战性的问题。为解决海量数据的读取和统计问题,开展了高性能数据中心实现技术研究。分析了当前IT技术发展趋势,通过对内存计算技术和数据建模技术研究,采用内存计算技术和数据建模技术构建新型的数据中心,实现了数据中心性能的大幅提升。

关键词关键词:高性能数据中心;内存计算;数据建模;数据仓库;大数据

DOIDOI:10.11907/rjdk.162794

中图分类号:TP301

文献标识码:A文章编号文章编号:16727800(2017)005000605

1内存计算技术特点

内存计算技术是将大量的数据直接装载到内存中进行计算和处理。内存计算技术大大减少了从硬盘读写数据的时间,消除CPU和主内存的带宽瓶颈,计算速度得到大幅提升。内存计算技术融合了硬件与软件技术创新。硬件创新包括具有多核架构和以TB计的内存服务器,可实现大规模并行扩展。软件创新包括内存数据库,为最大限度发挥内存计算技术潜力而专门设计了行、列存储。并行处理在数据库层进行,而不是在通常的客户端-服务器架构中的应用程序层。使用内存计算的数据库,在理想状态下可使数据处理速度提高1 000倍以上[1]。

采用内存计算技术的数据库系统,具有传统数据库不可比拟的优势:基于大容量内存的高效数据读取和处理,行存储和列存储的混合模式同时支持OLTP和OLAP,充分利用硬件并行计算技术建立数据的并行处理机制,高效的数据压缩可以优化内存利用,虚拟建模减少数据冗余,高效的动态聚合能够快速计算和汇总数据,能够在数据库层面进行数据密集型运算等[2]。

目前内存数据库在业界居于领先地位的产品是SAP公司的HANA,本文在高性能数据中心实现技术的研究中采用SAP HANA作为技术平台。

2数据中心平台性能提升

数据中心平台的核心是数据库系统,采用内存数据库搭建数据中心平台,能够借助内存计算技术的并行处理、内存技术、压缩(去重)技术等解决空间问题,大幅提高数据中心平台性能。

2.1系统架构

基于内存计算的数据中心核心是SAP HANA内存数据库。如图1所示是一个三节点的可伸缩HANA系统架构,主节点服务器A是一个完整的HANA系统,由5个服务组件构成,与单节点的HANA系统是一样的。

Name Server是名字服务器,相当于整个HANA数据库系统环境中的“通信员”,通过名字服务器可以知道当前HANA服务器的部署情况、数据在节点的分布情况以及节点的运行状态。

Index Server是索引服务器,是HANA的核心组件,承担内存管理、事务管理、元数据管理器及权限认证、多版本并发控制等众多管理工作。

Pre-processor Server是预处理服务器。由于HANA加入了对文本数据的特殊处理,因此需要预处理服务器分析文本数据和提取信息用于优化文本搜索功能。

Statistics Server是汇总统计服务器,負责收集所有数据库组件运行的状态、执行效率和资源的消耗状态等信息,同时还监控HANA Studio的访问,并返回不同的提示信息给登录用户。

XS Server是一个扩展应用服务器,可以将持久层的数据模型封装成HTTP方式提供给外部使用,它还具有对这些发布出去的服务进行搜索的功能,并且内置一个应用服务器[3]。

2.2内存计算性能提升关键技术

2.2.1基于大容量内存的高效数据读取和处理

传统数据库所依赖的磁盘读取数据速度是毫秒级,而从内存读取数据的速度是纳秒级,这使基于内存的数据读取速度比基于磁盘的数据读取速度要快100万倍。内存数据库能简单地将数据从磁盘移到内存,它利用了创新的内存技术来最大限度发挥多核多CPU系统架构特性。传统内存计算技术下所有的CPU内核都通过同一个前端总线来访问内存,在多核多CPU架构下会出现数据链路阻塞。为解决这些问题,出现了快速通道互连(QPI)技术。图2所示为一个多核多CPU架构,每个CPU集成了多个QPI通道(图2中的①~④),用于点对点连接I/O控制器和其它CPU,实现快速通讯。每个CPU还配置了对应的本地内存,可通过内嵌的内存控制器直接访问。这种内存访问方式称为NUMA(非一致性内存访问)。

内存数据库专门针对多核架构设计了并行化的数据处理,如HANA数据库底层代码广泛使用了优化并行处理的SIMD(单指令多数据流),如SSE3和SSE4等指令,使CPU尽量去访问和计算本地内存数据,而不是从其它CPU的本地内存中读取数据,从而更好地发挥了NUMA和QPI的优势[3]。

2.2.2行存储和列存储混合模式

行存储适合于OLTP交易系统使用,而列存储适合为OLAP分析系统提供支持。传统数据库是按照行方式存储数据的,而内存数据库如HANA 既支持行存储也支持列存储,因此可对OLTP和OLAP同时提供高效支持。通常HANA的行存储用来存放和更新系统表,以及用于数据库的元数据管理和应用服务器的内部数据管理,而列存储用来保存业务数据信息,两者各司其职。

图3展示了一个数据库表,表中存储了商品、价格和货币单位3个列。在行存储模式下,用户只需要访问价格,读取数据要扫描所有行的所有列,顺序扫描整个数据存储区域,这将耗费大量时间。而在列存储模式下,价格信息都存储在临近的内存地址,缓存的存储块如果包含了该地址的5个整型数的长度字节,其它数据则基本不用读取,读取速度大大提高。

由此可见,使用列式存储技术,相邻内存空间存储的是同一个列的数据值,可只读取数据库表中所需的列;使内存控制器高速缓存的缺失次数最小化,提高了CPU缓存的命中率;能够高效利用CPU缓存,如数据检索和聚合都可在一个连续的内存地址空间完成;能够利用同列数据的重复性或相似性来提高数据的压缩效率。列式存储在数据查询分析、统计运算方面效率非常高。

2.2.3高效并行处理机制

并行处理目的是为了最大化地利用所有的计算资源,达到负载均衡,进而支持更多的并发访问来提升系统整体性能。

基于多核多CPU架构的内存数据库使并行处理数据变得相对简单,因为内存数据库不但可以像传统数据库的表分区那样按行作水平分区,还可以按列作垂直分区,这意味着不同行和不同列的数据都可以轻松进行并行处理。如图4所示,“销售数量”这一列的数据按垂直分区分布到了服务器A的CPU内核A来处理;而对于“折扣”这一列,可以按水平分区将大于等于0.90的数据分布给服务器A的CPU内核C,其它分布给服务器B的CPU内核D处理,这种并行处理对开发人员来说是透明的。

3利用融合建模技术提高数据模型性能

数据建模是数据中心建设的关键,建模技术直接影响数据的处理性能。基于内存计算技术的数据中心平台提供了更多更高效的建模方式,有助于提高数据处理能力。

3.1数据中心数据架构

一个完整的企业数据中心数据架构包括持续数据加载层、企业数据仓库层、架构式数据库层、语义层和应用层[4],如图5所示。

(1)持续数据加载层PSA(Persistent Staging Area)用于存储源系统准确、详细的业务数据,相当于源系统数据的一个副本。这些数据通过清洗转换,加载到企业数据仓库层,这些数据还可为运营报告和数据挖掘提供比数据仓库层更细颗粒度的数据支持[5]。

(2)企业数据仓库层是将数据按照数据规范和技术规范统一化、标准化,按主题分门别类重新存放,数据覆盖整个企业的范围,具有集成、准确和完整特征,可支持企业运营决策和数据挖掘。企业数据仓库层通常以关系数据库作为平台,本文研究中采用SAP HANA。

(3)架构式数据库层是将数据按照维度和业务数据的度量构建成数据立方体。数据立方体是一个可从多个角度探索和分析数据的数据结构,是支撑商务智能分析的主要数据模型。架构式数据库层以OLAP为平台,本文采用的是SAP BW。

(4)语义层面向业务人员,它用直白的业务术语将数据立方体、关系数据库的库表甚至XML和Web Service数据展现出来,使复杂的数据源有统一的访问方式和易于业务理解的展现方式,为业务人员提供自助性访问和分析数据的能力。本文语义层采用SAP Universe。

(5)应用层主要是BI前端展现工具以及基于这些工具开发的业务应用。本文应用层采用SAP BO商务智能软件。

数据分析模型构建是企业数据中心建设最为核心的工作。传统的方法主要是在架构式数据库层用数据立方体来构建数据分析模型。随着内存数据库的出现,数据模型的构建方式也有了新的改变。内存数据库的技术特性使其既可作为OLTP使用,也可作为OLAP使用。基于内存数据库构建的数据仓库层,可同时用于构建数据分析模型,带来全新的技术优势和用户体验。

3.2两种数据建模方式

3.2.1基于数据立方体的建模方式

数据立方体是架构式数据库层的数据模型,组成的要素是维度和业务数据的度量。以商品销售为例,将时间、客户、商品作为维度,以销售数量、销售价格和销售金额作为度量,构建一个商品销售分析的立方体数据模型。

SAP BW是一个架构式数据库平台,如图6所示。它除了支持通常的数据模型功能外,还具有以下特性:

(1)数据立方体可通过语义层的Universe映射成面向业务模型。Universe是SAP BO的核心专利技术,隐蔽了基本数据源的复杂性,用户可通过业务语言来实现数据的表达,是业务人员自主创建数据分析应用的基础[5]。

(2)数据立方体除支持标准的MDX访问外,还提供了SAP自有的Query访问。Query是SAP的一项简单报表工具,可通过图形化界面的拖拉操作生成查询。Query的数据源不仅支持关系数据库库表,还支持数据立方体。Query生成的查询实际就是数据源的一个带查询条件的数据子集,这个数据子集既可提供給普通的查询和报表使用,也可提供给SAP BI工具作数据分析使用[6]。

(3)数据立方体是基于关系型数据库建立的,每个立方体在关系数据库有对应的维度表和事实表,这些维度表和事实表对用户开放,SQL可直接访问,为快速响应查询提供了一条直接有效的途径。

3.2.2基于内存数据库的建模方式

内存数据库HANA提供了基于列存储的虚拟模型来支持数据建模,能在企业数据仓库层实现类似数据立方体的数据模型。数据立方体通常将数据仓库的细颗粒度数据按维度聚合,生成的结果集保存在数据模型中。而虚拟模型与数据立方体的本质区别在于它只是HANA的列视图,无需保存数据。只有当发出查询请求时,才从数据库表的细颗粒度数据中进行聚合计算,实时生成计算结果集。由于内存数据库的性能优势,这种计算能够瞬时完成,避免在数据模型中保存冗余数据。HANA动态聚合如图7所示[3]。

HANA工作台提供了图形化的建模工具。虽然建模结果就是生成列视图,但HANA仍然提供了多个不同的建模对象,用于实现不同复杂度的分析需求。包括属性视图用于建立维度,分析视图用于建立度量,分析权限提供安全控制,计算视图可以使用比较复杂的SQL进行数据处理,或将不同的数据模型合并成一个新的数据模型。

虚拟数据模型架构如图8所示,特点如下:

(1)虚拟模型与数据立方体一样,可以使用MDX直接访问,这是多维数据分析的标准方式。

(2)虚拟模型可通过语义层访问。语义层除了使用Universe外,还可使用Information Space(信息空间),将虚拟模型映射成面向业务的模型。信息空间是SAP另一种语义层技术,它是面向分析主题的信息集合,可对虚拟模型的多维数据集进行封装过滤,与分析主题相关的内容才能使用[3]。

(3)虚拟模型可以映射为BW的数据立方体,除支持标准的MDX访问外,还可将虚拟模型映射到BW Virtual Provider,通过SAP自有的Query访问。

(4)虚拟模型是HANA的列视图,其数据存储在相应的数据库表中,这些数据库表可由SQL直接访问。但由于虚拟模型并不存储聚合计算结果,因此这种访问方式意义不大,仅仅为不熟悉MDX的用户提供了另一种选择。

3.3融合建模

以上两种建模方式,各有其优缺点和适用性,下面以BW和HANA为实现平台进行分析比较。

3.3.1基于数据立方体的建模方式

BW建模优点:①为数据建模提供支持。例如提供了现成的数据模型可以激活即用,提供现成的数据对象便于进行数据分析,提供会计年度和会计期间的时间特性支持财务数据分析,能定义依赖时间的维度层次结构来支持随时间改变的属性和特性;②汇总和聚合的结果保存在数据模型中,在数据分析时不需要大量计算,这种以空间换时间的方式可以获得数据分析性能的提高;③数据模型提供了有效的数据质量保障机制,在数据加载到模型时会进行严格审查,从而保证模型中数据的规范性和准确性。

BW建模缺点:①数据建模处在架构数据库层,模型的数据存储在企业数据仓库层的关系数据库上,这种跨两个层次的结构降低了数据模型的性能;②数据立方体模型存储空间是几何级数增长的,不适用于分析业务的明细数据,因为这些数据的数量本身就很大,加载到模型后变得更加庞大,往往导致访问性能急剧下降;③模型做聚合计算时不能提供数据服务,所以需要安排专门的时间窗口来处理。

3.3.2基于内存数据库的建模方式

HANA建模优点:①模型和数据存储都处于企业数据仓库层,可发挥内存数据库超强的计算能力,同时也利用了HANA中各类优化器和引擎提供的支持,性能优异;②数据模型不会另外存储数据,不会出现存储空间的暴增和访问性能的急剧下降;③聚合值动态实时计算,即使业务数据发生更新,聚合值也能与更新数据始终保持一致,不需要為数据模型的聚合计算安排专门的时间窗口。

HANA建模缺点:①用于建模的数据没有BW丰富,处理与时间相关的属性和特征较麻烦;②支持这种模型的BI软件相对较少。

BW on HANA是BW迁移到HANA上的产品,其HANA架构已经融合了BW的许多功能,例如数据建模、数据管理和分析/计划引擎等,如图9所示。它同时支持上述两种建模方式,带来了一种新的建模思路,就是将两种建模方式融合起来,混合使用,可将其称为融合建模方式。

(1) 建模原则。①为提升数据分析性能,应优先选择内存数据库建模,尤其是需要大量业务明细数据的分析场合;②需要用到诸如与时间相关的属性和特性的应用,应采用BW的数据立方体建模;③对于仅支持数据立方体建模的BI软件应用,应采用BW的数据立方体建模。

(2)两种模型数据统一加工。BW on HANA继承了BW的数据加工方式。原始数据首先通过ETL工具抽取到PSA,经过加工进入到企业数据仓库层。这些数据是数据立方体建模和内存数据库建模的基础数据,基于统一的数据加工过程生成。在这个基础上,BW通过数据传输进程和转换,将数据仓库的数据加工并加载到数据立方体,HANA则是将数据仓库的数据通过列视图映射到虚拟模型。这个统一的数据加工过程保证了两种建模方式的数据一致性。

(3) 两种模型数据的统一访问。数据立方体和虚拟模型都支持MDX和Query的访问方式,需要将两种模型数据混合使用时,可以通过在语义层建立Universe,将两种模型数据整合到一个语义模型里,实现数据的统一访问,如图10所示。

4性能测试结果

通过内存计算技术、数据建模技术和应用优化技术,可以实现数据中心性能提升。通过性能测试来检验效果,从平台性能和应用性能两个层次进行性能测试。

4.1平台性能测试

数据中心平台性能测试采用TPC-H测试规范,在10G测试数据上运行TPC-H的标准Select语句,得出表1的测试记录,经过计算,得出此次HANA测试的最终性能分数QphH@10G为26842.03。

根据TPC官网发布的资料,将IBM DB2、MS SQL Server在性能相近的硬件平台上的性能测试与HANA的测试结果进行对比(见表2),可以明显看到HANA的性能优势。

4.2应用性能测试

应用性能测试通过测试用例进行,模拟200个用户在线访问,从系统中选取多个复杂、中等、简单等级的查询页面进行测试。从结果可以看到,最慢的页面加载时间在5秒之内,测试结果见表3。

查询复杂度标准为:简单指查询1~3个数据模型或数据库表;中等指同时查询3~8个数据模型或数据库表;复杂指同时查询8个以上数据模型或数据库表。

5结语

本文基于内存计算技术的高性能数据中心研究,在一定程度上解决了海量数据造成的数据分析性能下降、业务决策支撑手段不足的问题,为实现有效的数据集成和信息共享、提高企业管理和生产经营效率具现实意义。当前,大数据处理技术日渐成熟,如何进一步利用内存计算高性能技术,通过大数据分析帮助业务部门快速解读数据,通过大数据挖掘为业务决策提供依据,仍将是下一步需要研究的热点。

参考文献参考文献:

[1]赵刚.大数据技术与应用实践指南[M].北京:电子工业出版社,2014.

[2]尹东升,陈磊,周斌.跟我学SAP HANA[M].北京:清华大学出版社,2014.

[3]刘刚,舒戈.SAP HANA实战[M].北京:机械工业出版社,2014.

[4]SAP BI——建模与实施[Z].培训教材.

[5]CINDI HOWSON,ELIZABETH NEWBOULD.SAP business objects BI 4.0完全参考手册[M].第3版.北京:清华大学出版社,2015.

[6]张俊.SAP BW/BO实战指南——像学习Office一样学习BW/BO[M].北京:机械工业出版社,2015.

责任编辑(责任编辑:杜能钢)

猜你喜欢

数据仓库大数据
基于数据仓库的数据倾斜解决方案研究
基于数据仓库的住房城乡建设信息系统整合研究
页岩气工程大数据仓库建设与管理系统开发
分布式存储系统在液晶面板制造数据仓库中的设计
探析电力系统调度中数据仓库技术的应用
大数据环境下基于移动客户端的传统媒体转型思路
基于数据仓库的数据分析探索与实践