《SAP HANA平台应用开发》—第1章1.1节SAP HANA和XS开发

简介:

本节书摘来自华章出版社《SAP HANA平台应用开发》一书中的第1章,第1.1节,作者刘刚,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第1章 SAP HANA和XS开发
SAP HANA是SAP公司于2010年年底宣布推向全球市场的高性能数据处理软件,其官方名称为SAP Real-time Data Platform(SAP实时数据平台),可以运行在经过认证的PC服务器、小型机、虚拟机,以及公、私有云平台上。SAP HANA的唯一目的就是为用户提供极高性能的计算服务。
SAP HANA是一个平台,而非仅仅是一个数据库,这是因为它从一开始就是以平台为目的来设计的,而非仅仅作为一个运行SAP应用系统的底层数据库。从技术层面看,SAP HANA的核心是高性能的内存数据库和各种计算引擎,围绕着这个内存数据库,SAP不断开发了可以高效利用HANA内存计算能力的服务组件,并且将这些新服务、新组件加入到SAP HANA系统中。例如,地理和图形信息计算引擎、文本分析和挖掘、规则引擎、数据服务引擎、搜索、预测分析、XS应用服务器、数据流处理,以及与第三方数据系统集成的存储接口等,如图1-1所示。
除了利用SAP HANA创建应用系统的运行时数据库之外,还可以充分利用SAP HANA开发很多创新的应用,这些创新的应用才是SAP HANA的真正价值所在。
正如SAP HANA在官方网站上所宣传的那样:SAP HANA平台将数据库、应用服务、内存计算技术聚合在一个平台上,使得用户有能力对企业的业务信息、大数据分析、文本挖掘和预测分析,以及空间地理信息进实时处理。


17e6e5ebf30093dd55c5d1b52ced42267c3a4a21

1.1 SAP HANA系统的组件
SAP HANA由哪些组件组成?这些组件之间有什么关系?每个组件具体起什么作用?接下来将介绍这些内容。
在SAP HANA系统(以安装方式为Single Instance来举例,SAP HANA也支持多租户)启动之后,当前这个完整的SAP HANA系统是由一组在后端运行的操作系统进程组成的。在图1-2中,除了显示了SAP HANA系统的所有系统服务,还显示了这个服务所使用的CPU、内存、所占用端口等信息,这些不同名称的系统服务(Index、Daemon、nameserver等)通过共同协作,组成了一个完整的SAP HANA系统。

c14be803fbcdf044cd2b8c7e73a02efe2dc4ea12

在操作上,以上这些组件都可以进行独立重启。例如,我们做了一些XS的配置参数,需要XS服务器重启,此时可将XS Engine单独停止,然后再启动。
从软件上看,SAP HANA的核心内容是内存数据库、列存储、OLAP引擎等,将这些内容整合为一个Index服务,然后在不断推出的新版本中将更多的功能模块整合为一个单独的新服务,或者将新特性加入已有的服务中。这些陆续增加的新服务、新特性从一开始就在SAP HANA产品路线图被标记出来了。这些新服务或新特性加入到SAP HANA系统中,其唯一目的就是高效地利用SAP HANA的内存计算能力。有的读者会觉得SAP HANA变得越来越庞大,这是因为需要利用SAP HANA的地方太多了,并且SAP HANA的内存计算核心功能也需要不断完善,变得更为智能。
从硬件上看,SAP HANA也在不断地融合新技术到新版本中,Intel的E7 Haswell架构上的处理器也增加了TSX(Transactional Synchronization eXtensions,事务同步扩展)功能,它在硬件架构层面更是增强了事务数据处理的效率,这使得在多核架构下的内存计算中加速了同步线程的可扩展性和性能。从已经推出的SPS10开始,SAP HANA就可以充分利用TSX的能力,改善现有基于锁的编程模型,从而让SAP HANA具有更强的扩展性和更好的事务处理执行性能。
图1-3所示列出了SAP HANA系统的主要组件,以及外部应用访问这些服务组件时的协议和方法。按照功能来说,SAP HANA系统中的服务可以分为两类:第一类是数据库服务组件;第二类是应用服务和增强组件。

9fa8c32dbc67220c3dfbc021f130857b8337b9fd

1.1.1 数据库服务的组件
(1)Index Server(索引服务器)
索引服务器是SAP HANA最为核心的服务组件,处理来自外部的SQL/MDX等服务请求,并且包含物理的数据存储和数据计算引擎。如果这个服务器停机了,那么HANA的核心数据库功能也会停机。
(2)Preprocessor Server(预处理服务器)
Index Server利用预处理服务器分析文本数据,从而得到预处理以后的结果。因为笔者在实际应用中没有太多接触这个服务,所以这里就不过多介绍了。
(3)Name Server(名字服务器)
名字服务器保存着当前SAP HANA系统完整的系统拓扑图、数据的分布,以及当前活动的服务器节点和处于休眠状态的备用节点等信息。例如,数据库表做过分区,并且散布在多个节点中,这些数据的分布信息就存储在名字服务器中。
(4)Statistics Server(统计服务器)
统计服务器负责收集HANA系统中其他服务的状态、效率和资源消耗。SAP HANA工作台连接到HANA系统时,呈现给用户的当前和过去的系统状态信息都是由统计服务器提供的。
以上4个组件是SAP HANA的核心组件,也是经常介绍和接触到的组件,属于操作系统级别的进程。在Suse Linux中执行top –u adm命令,能看到这些核心组件在操作系统中的运行状态。
1.1.2 应用服务和辅助组件
除此之外,在SAP HANA系统中还有其他几个服务,这些服务是在SAP HANA版本不断升级时,陆陆续续被加入到SAP HANA中的。
(1)XS Server(Extended Application Services或XS服务器)
XS服务器当然也是SAP HANA系统的一部分,它就像一个内置Web应用服务器,能够让应用通过HTTP访问SAP HANA数据库。
从内部架构上看,XS Server其实也可以被视为一个Index服务器,只是XS服务器不具备Index服务器的数据存储的功能,并且XS 服务器在其上多加了一个XS Layer,这使得SAP HANA能够处理来自HTTP的请求。
当部署在XS Server上的应用程序接收到外部的请求需要去访问数据时,这个SQL执行会自动链接到Index Server所存储的数据中。XS服务器和Index 服务器之间是通过HDBNet(内部交换协议)方式进行通信的,这使得数据不需要通过网络传输到外部的应用服务器,直接在Index Server中运算完毕,然后传递给XS Server,在内部进行交换。
(2)Web Dispatcher(Web访问调度器)
Web Dispatcher被用来处理Web的Inbound和Outbound的服务,并且也可以作为前端应用服务器的自动负载和自动路由。
Web Dispatcher在过去的十几年中,一直作为SAP NetWeaver Web应用服务器的一部分存在,随着SAP HANA XS服务器的逐渐完善,Web Dispatacher也被放入到SAP HANA服务器中,并且为SAP HANA XS服务器提供Web访问的负载均衡服务,主要是为了将来的XS服务器可以进行分布式部署而设计。
(3)Complie Server(编译服务器)
编译服务器执行存储过程、XSJS,以及数据库对象的编译,它运行在SAP HANA中,但是不存储任何数据。
(4)Script Server(脚本服务器)
脚本服务器主要用来执行以C++编写的应用功能库。这个服务器需要手动开启,并非默认自动就启动的。在SAP Note 1650957中对这个脚本服务器有更为详细的说明,大家可自行阅读。
(5)SAP start Service(启动服务器)
这个服务器主要负责以正确的顺序启动和停止SAP HANA中的所有其他的服务,此外还会监视其他服务的运行状态,如果出现异常,就会立即重启这个服务。

**提示信息:
本节介绍了SAP HANA所有的服务器组件,这些组件合并起来才能称为一个完整的SAP HANA系统。我们只需要对这些服务器组件有一个基本的认识,并且对其相互的关系有一个简单的了解就可以了,无须深究其细节和详细配置内容,这些是SAP HANA系统管理员更为关心的信息。
以一个Web访问的流程为例,浏览器在UI上发出一个查询数据的请求。首先,Web Dispatcher进行处理,转发给XS Server根据服务定义,发送SQL SELECT操作给Index服务器,然后Index Server根据Name Server中的数据分布信息去具体的数据分区中进行检索,最后返回给XS Server,再通过Web Dispatcher服务器发给浏览器。**

相关文章
|
SQL 设计模式 前端开发
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
1679 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
|
SQL 存储 JavaScript
SAP HANA 详细介绍
SAP HANA 详细介绍
1004 0
|
大数据
为什么要学习SAP HANA
大数据最近几年是一个比较火的名词,2015年读过一本叫做《大数据时代》的书,航空机票的例子让我记忆犹新。如今工作中接触到SAP HANA,勾起了我心中对大数据的欲望。
114 1
|
存储 缓存 算法
「内存数据库」SAP HANA的不可告人的秘密
「内存数据库」SAP HANA的不可告人的秘密
|
存储 缓存 算法
「首席看HANA」SAP HANA的秘密- 不要告诉任何人
「首席看HANA」SAP HANA的秘密- 不要告诉任何人
SAP 金额转中文大写自开发函数
关于凭证打印时需将金额转换成中文大写
122 0
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
234 0
SAP DALOG开发-代码触发回车事件
对于指定输入框:触发屏幕回车事件
257 0
SAP MM/FI_运费处理方式
常见的采购运费处理方式
SAP MM 途损处理方式
通常客户采购业务需求提到货物运输有损耗,需要针对此业务给出合理方案输出,下面笔者针对此类业务分析下各种实现方案的可行性!