《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服务器发给浏览器。**

相关文章
|
19天前
|
开发者 数据处理 数据管理
SAP HANA 的不同类型
SAP HANA 的不同类型
36 9
SAP HANA 的不同类型
|
20天前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
18 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
1月前
|
Linux 开发工具 开发者
关于 SAP HANA 开发那些事
关于 SAP HANA 开发那些事
24 0
|
20天前
|
数据库 存储 监控
什么是 SAP HANA 内存数据库 的 Delta Storage
什么是 SAP HANA 内存数据库 的 Delta Storage
16 0
什么是 SAP HANA 内存数据库 的 Delta Storage
|
16天前
|
Java BI API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
SAP Cloud for Customer 里如何通过 ABSL 二次开发方式消费 SAP S/4HANA 系统的 API
14 0
|
20天前
|
数据库 SQL 应用服务中间件
SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析
SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析
20 0
SAP ABAP CDS View 和 HANA CDS View 相同点和不同点辨析
|
2月前
|
机器学习/深度学习 人工智能 监控
SAP Sales Cloud,Service Cloud 和 SAP BTP 平台上的 AI 集成场景
SAP Sales Cloud,Service Cloud 和 SAP BTP 平台上的 AI 集成场景
67 0
|
1月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
27 0
|
1月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
15 0
|
1月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
15 0