SAPHANA平台应用开发(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-09 19:43:39

点击下载

作者:刘刚

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

SAPHANA平台应用开发

SAPHANA平台应用开发试读:

前言

SAP on Cloud

云端的SAP是SAP公司对未来的一个展望。SAP公司以及其软件产品、业务模式将会变成什么样、未来是什么,此时此刻没有人说得清楚。但是,SAP公司目前所有的业务发展、主流技术路线都非常明确地指向一个方向——云计算。

为了实现这个目标,SAP公司花了五六年的时间,耗费超过300亿美元进行收购(Ariba、Hybris、SucessFactor、Concur这样的SaaS公司及Sybase)和新产品研发(已经发布的有HANA企业云、HANA云平台、S/4 HANA及全新的XS 2.0应用服务器),就是为了打造一个敏捷平台,从而为将来的数字经济服务。而这个敏捷平台就是SAP HANA,目前全球已经有超过7200家公司使用它,而且其客户量每年都以超出想象的速度在增加。这不是一个愿景,而是正在发生的事情。

在过去几十年的发展中,SAP公司的核心平台一直都是NetWeaver ABAP和NetWeaver Java(Java从2004年才被纳入NetWeaver体系),而且作为SAP公司立身之本的企业商务套件及一些主流技术产品,基本上都是基于这两个平台的。

SAP NetWeaver是比Java历史更为悠久、成熟、健壮和稳定的平台,但其也有自身的不足。首先,SAP NetWeaver虽然一直在追着互联网的脚步(从早期的ITS,到BSP技术,再到WebDynpro和Personas做Web化的应用),但是始终受制于自身平台,无法跳出平台进行思考,太多的成功和贡献反而成为了它的历史包袱。其次,由于这个平台的不开放性,不太适合主流的Web应用部署和移动开发,同时Java受制于专利和一些竞争对手的法律限制。最重要的是,这个平台不适合部署在云端,云端部署要求应用要轻、要可面向微服务、可扩展性和兼容性强。

因此,SAP需要寻求一个新应用服务平台作为云计算架构中PaaS层面的应用支撑,这个责任就落在了SAP HANA XS身上。之所以称其为HANA XS而不是SAP XS,是因为XS刚开始发布时,是被当作一个轻量级Web服务组件被集成到SAP HANA中的,并且能够利用SAP HANA全部计算能力。

从XS的2.0版本开始,HANA XS将会从HANA数据库软件包中剥离出来,真正成为一个平台即服务的平台。如果基于云部署,HANA XS底层的数据库也是SAP HANA。如果用户选择的是本地部署,那么和以前一样,XS依然和SAP HANA安装在一起,这种部署的灵活性,使得SAP HANA XS部署应用系统时更方便,可不中断现有系统的基础架构,而且可以立即适应企业的环境。

通过XS服务器端的JavaScript技术,可充分利用内存计算及UI5技术,并且可以Fiori Apps作为应用的发布形式,最终提供UI5+XS+HANA这样全新的技术组合,从而将应用非常轻松地部署到云平台之上,为用户提供极佳的使用体验和部署策略。这就是未来SAP应用系统的样子。为什么需要阅读本书

本书的前传篇《SAP HANA实战》主要是以构建一个商务智能的项目为出发点去讲解SAP HANA系统安装配置、数据ETL、信息建模、BI集成应用及系统管理的。但是,笔者总觉得还少了点什么,因此就有了写这本书的念头,所以本书应该算是《SAP HANA实战》的兄弟篇,书中仅针对基于SAP HANA XS原生应用开发来进行讲解,其他的话题一概不涉及。

本书不包含任何关于BW on HANA、S/4 HANA、BI on HANA和ETL、数据复制、ABAP、R的话题,也没有讲解SAP HANA的系统安装、配置升级管理等话题,如果读者对这些话题感兴趣,可以参考《SAP HANA实战》一书。

早期的SAP HANA应用主要作为企业BI商务智能的平台,然后推动ERP on HANA,接下来再升级到S/4 HANA这一步。但是,大力提升上层应用的运行效率仅是它最基本的功能,而且SAP也正在依托HANA这个平台进行更大的自我创新。例如:

·SAP HANA已经从本地单节点、集群部署走向云部署,并且推出了HANA企业云及HANA云平台,公有云平台支持Java(目前使用的SAP JVM、XS 2.0版本将使用TomEE来支持Java运行)、HANA、HTML5的应用开发,而XS 2.0也将主要应用在云部署上,并且还将支持Node.js、C++的开发。

·在S/4 HANA大计划中,Simple Finance、Simple Logistics都基于SAP HANA,并且原有的大部分业务操作全部用Fiori App来替换,并应用HANA模型以简化数据结构,同时应用了大量XSJS代码。

·在S/4 HANA中,SAP NetWeaver架构已经发生实质性的变化:SAP GUI客户端→SAP NetWeaver应用服务器→数据库的四层架构(之前是三层架构),即浏览器→SAP NetWeaver前端服务器→SAP Netweaver后端服务器→数据库,而后端服务器仅作为核心业务逻辑继续存在,并持续被优化。

·全面拥抱HTML5(UI5),在服务器端大量采用JavaScript、HANA信息模型等,而这些东西都是基于SAP HANA XS的,并且逐步向XS上迁移。

由此可见,依托SAP HANA XS进行原生应用开发,是SAP将来新应用的开发技术路线。虽然XS平台支持HANA原生、Node.js、Java、C++四种应用开发,以及自定义容器,但毫无疑问,HANA原生应用(即XSJS、UI5、Fiori Apps、CDS、Modeling)将是未来采用的最主要的方式,因此本书所有的章节都是围绕着HANA原生应用开发展开的。本书主要内容

本书逻辑上可分成五个部分,读者可以根据下面的简介来选择性阅读。

第一部分:包含第1、2章,主要讲解SAP HANA服务器的各个组件、原生项目的开发架构、SAP HANA工作台的主要操作、创建用户、创建表、赋予权限等。

第二部分:包含第3、4章,主要介绍信息建模、SQLScript相关知识。这部分相对独立,但后续的XS项目示例中会应用这部分知识。

第三部分:包含第5~8章,讲解了HANA原生应用开发过程涉及的绝大部分内容,包含XS项目的创建、核心数据服务、访问控制、XSJS、OData和UI5集成等内容。

第四部分:包含第9~11章,这部分主要通过一个具体案例来说明HANA XS原生应用的开发过程及所涉及的全部对象。在介绍过程中,一步一步不断增加新特性,使这个例子成为一个完整和考虑周全的系统,最后还将一个XS应用部署和传输到另外一个HANA系统,并重点介绍了修改控制、传输等细节内容。

第五部分:包含第12、13章及附录。主要讲解HANA应用上线后如何进行运维、团队如何进行协同开发,以及如何实现系统的高可用。在附录部分,提供了作者很多年的经验和心得。本书面向的读者

本书是一本面向应用开发的纯技术书,瞄准基于SAP HANA原生应用开发的所有细节内容,只要你对SAP HANA、XS、UI5、HANA原生应用开发感兴趣,本书都将是你的最佳选择。

目前还在从事ABAP开发的读者,通过本书可轻松进入HANA应用开发领域,还可以尝试将一些已经在做的项目用XS来实现,并将其作为一个解决方案发布到HANA云平台,从而成为一个HANA云应用的开发者。

阅读过《SAP HANA实战》的读者则可以从本书中学到HANA原生应用开发的内容,并且在新的HANA项目中不断应用这些技术。

HANA系统管理员则可以从本书中学到HANA应用自动化传输、配置和协同开发、高可用等相关知识。勘误和支持

本书基于SAP HANA SPS10 Revision 95版本进行讲解。在本书的撰写过程中,SAP HANA版本也在不断升级,每次推出新的SPS版本,或者有比较大的变化(例如XS 2.0的架构更新),作者都花了相当多的时间去更新书中的内容。

由于受限于作者本身的知识,书中某些内容可能阐述得不是非常精确,如果大家在阅读中发现有一些错误,敬请谅解。特别感谢

感谢机械工业出版社华章公司杨福川的大力支持,编辑姜影、孙海亮的耐心帮助,因为有了他们本书才得以顺利出版;感谢SAP研究院的张凯,是他帮助作者提升了本书的格调;还要感谢小黑屋七人众的吐槽支持。第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平台将数据库、应用服务、内存计算技术聚合在一个平台上,使得用户有能力对企业的业务信息、大数据分析、文本挖掘和预测分析,以及空间地理信息进实时处理。图1-1 SAP HANA平台的架构体系1.1SAP HANA系统的组件

SAP HANA由哪些组件组成?这些组件之间有什么关系?每个组件具体起什么作用?接下来将介绍这些内容。

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

在操作上,以上这些组件都可以进行独立重启。例如,我们做了一些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系统中的服务可以分为两类:第一类是数据库服务组件;第二类是应用服务和增强组件。图1-3 SAP HANA系统的主要组件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–uadm命令,能看到这些核心组件在操作系统中的运行状态。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服务器发给浏览器。1.2进入XS应用开发的新篇章

在SAP HANA的早期版本(例如SPS06)中,没有提供所谓的XS资源库的概念,但是XS Server是一直就存在的。

因为早期的XS系统架构和服务不是非常成熟,在SAP官方的文档中都只是将其作为一个轻量级的应用服务器,并且XS的应用开发和资源库管理也都没有准备好,所以,早期的基于SAP HANA开发都没有使用XS项目的方式,也就没有相应的XS开发说明。

以往在SAP HANA上的应用开发大致如下:

·没有任何HANA的应用部署在XS服务器之上。

·直接在Catalog下创建Schema和存储过程、表。

·直接在Content下创建Package、属性、分析、计算等视图。

·创建DU,将Package分区分配进去,导出为离线文件,手动在几个SAP HANA系统之间进行DU的导入/导出。

·创建新用户,为其赋予访问数据库对象和视图的权限,然后外部系统应用可以通过这个用户访问SAP HANA。

·在HANA中只能开发基本的存储过程和HANA信息模型,供BI软件(BO、Tableu、QlikView)或者应用系统(NetWeaver、BW)访问。

·无法开发任何独立Web应用。

以前这种方式是无法进行部署的,也无法进行多人协同开发,没有版本管理和传输的机制,这基本上是条件不成熟的情况下,不得已而为之的方式。

但是,从SPS07开始,所有的SAP HANA上的开发都可以在XS资源库中完成,并且提供了多个HANA系统之间的自动化传输和部署工具。如果还继续使用过去的资源库来做应用开发,那么现在是时候考虑如何利用XS资源库进行开发了。

在目前的SAP HANA版本中,我们所做的一切开发都属于XS开发。

XS开发的优点如下:

·可以开发基于SAP HANA XS的独立Web应用,并且可以应用Fiori来进行统一的访问管理。

·以XS项目的方式来开发整个项目,并且使用统一的资源库功能来解决项目的多人协同开发的版本冲突、激活等问题。

·将数据库对象的开发(Schema、Table、角色、权限、存储过程等)全部以CDS的方式进行,让数据库对象可以通过DU来传输和部署。

·将HANA信息模型开发变成XS项目的一部分。

·具备完整的XS应用生命周期管理功能,如开发、DU或者Product打包、传输路径,以及后期运维的修改管理。1.2.1 XS原生应用和Fiori Apps

我们已经在SAP HANA上开发了XS原生应用,还需要使用Fiori LaunchPad(本文简称应用启动界面)作为入口和统一管理工具吗?笔者的回答是:不一定。

通常,我们基于SAP HANA XS开发的应用可以是独立XS原生应用,用户可以直接访问这个应用,当然,也可以将其挂载到Fiori LaunchPad中,用户通过统一的URL地址登录,Fiori根据登录用户的角色来判断可以使用哪些应用。为什么不一定需要使用Fiori来作为XS应用的入口和管理点?下面将详细说明。

·Fiori只是一个前端的UI框架,是由一组CSS、HTML5、JavaScript组成的一个Central UI Component,不涉及任何应用,仅提供管理Fiori应用的一些基本功能。

·SAP官方为很多已有的产品定制开发了很多UI组件,这些UI组件其实就是将SAP ABAP开发某个GUI程序做成Web的前端(不包含任何后台逻辑),这些UI组件在SAP的官网上被称为SAP Fiori Product,如图1-4所示。图1-4 SAP Fiori Product for Business Suite

·SAP Fiori Product基本上都是对已有SAP应用的一个Web化,但并非所有的SAP后台的应用都完成了“Fiori化”了。以SAP Fiori Product for ERP为例,目前已经包含了Accounting、Logistics(PS、SD、LE、MM、PP、PM、QM、GTM)大部分常用的用户界面,而且大部分SAP Fiori Product都是需要配合SAP Netweaver Gateway来使用的,XS独立应用则不是。

·SAP Fiori解决了不同应用之间的导航和相互跳转的问题,自开发的XS应用则是一个个独立的URL地址,如果需要做跳转,则需要在XS应用中考虑这些需求,虽然工作量不大,但是需要在设计XS应用时预留好这个功能。

·SAP Fiori只是一个Web应用的入口和整体展现框架,至于进入到应用以后的权限、数据隔离访问等操作都需要在这个应用中区实现。提示信息:

对于前面这个问题,笔者的看法是,因为SAP官方的产品需要将大量的应用“Web化”,但是这个Web化的工作不是仅在展现层面做了,后台的那些业务逻辑(例如,用ABAP写的BAPI、RFC FM等)也都用OData作为服务的封装。

SAP Fiori非常适合作为SAP开发的Web App的容器,因为它提供了较好的统一风格、导航、基于角色的工作台,并且支持多种设备的访问。SAP Fiori用来管理很多独立小应用是很好的。

如果需要在SAP HANA XS上开发多个不同的独立应用,那么使用Fiori是比较合适的。如果XS应用数量不多,而且每个XS应用都有自己独立的一套菜单和完整的业务操作,而且这些XS应用还会被挂载到企业内部的门户站点上去,那么就不需要使用Fiori作为访问入口,因为这反而会把事情弄得更为复杂。1.2.2 XS应用开发架构

前言中讲到了SAP HANA XS将作为下一代的应用服务器,图1-5所示为XS应用服务器的组成示意图。图中SAP向开发者传递了一些比较重要的消息,需引起注意。图1-5 SAP HANA XS应用服务器架构(来自SAP官方)首先,HANA XS服务器部署在什么地方?

如果客户部署的SAP HANA系统在本地服务器上,那么XS服务器和现在一样,继续作为SAP HANA系统的一个服务(即XS Server组件),和Index服务器及其他组件一起,共同组成了一个完整的SAP HANA系统实例。XS应用服务器和数据库服务器在一起,不分离。

XS服务器是为HANA云平台而设计的,但是也可以部署在本地的HANA中。部署在云环境,就是SAP HANA Could Platform(HANA云平台,即http://hcp.sap.com)的应用方式。这种情况下,XS服务器从HANA系统中独立出来了,可以集群部署,并且基于Cloud Foundry这样的PaaS云平台。

因为考虑到了用户的需求,大部分部署在HCP上的应用都是可以部署在本地SAP HANA环境中的。基本上不需要做什么调整,毕竟本地和云部署的运行环境是相同的。其次,是HANA XS服务器提供的运行环境是什么?

不管是云部署还是本地部署的方式,XS应用服务器都提供了XSJS、Node、Java、C+的运行环境。而且在2.0的版本中,将服务器端JavaScript的引擎做了统一整合,全部使用Google V8。第2章熟悉HANA开发环境

在第1章中,笔者介绍了SAP HANA的基本概念及其主要服务器端的组件。本章将使用SAP HANA工作台软件登录到一个SAP HANA系统,并快速了解SAP HANA的一些常用操作。主要内容包括:第一次连接到SAP HANA系统,创建Schema、表、视图,使用SQL Console,导入数据等,创建用户,赋予角色,以及在不同的视角下进行切换,进入不同的操作模式等。2.1环境准备2.1.1 SAP HANA服务器软件及硬件

开展SAP HANA项目或者实施SAP系统,到底应该买什么规格的硬件服务器?多少个物理服务器、系统实例和配置、大概的价格范围等信息,在咨询公司的方案中通常都会提供,所以客户可以直接参考这些信息。

如果打算自己做整个项目的实施,选择什么样的SAP HANA硬件是一个复杂的问题,因为SAP官方要求HANA系统必须运行在认证过的环境上,并且提供了很多硬件配置和不同的选择。

目前,共有超过13家主要硬件供应商(Unisys、Bull SAS、SGI、Lenovo、Huawei、Dell、IBM、HP、Cisco、Hitachi、NEC、Fujitsu、VCE),并且提供超过1210种配置的SAP HANA硬件服务器供用户选择,用户可以在SAP官网上下载该硬件列表(见图2-1),或者在线查看能够采购的硬件信息。图2-1 SAP HANA认证的硬件列表-SAP HANA PAM文档截图

在线硬件供应商列表的网址如下:http://global.sap.com/community/ebook/2014-09-02-hana-hardware/enEN/appliances.html。

下面简要介绍用户采购SAP HANA硬件服务器的两个主要参考指标,其他的硬件配置(如CPU架构、存储、文件系统、操作系统、存储系统)不需要用户太过关心,因为有些东西是没法拆开的。例如,刚开始选择了一个单节点,但是后来想升级为HANA集群,那么之前单节点的服务器是不能升级的。

第一个指标是Memory Size(即服务器内存大小),计算公式如下:

需要采购的SAP HANA服务器内存(GB)=需放入HANA的数据/(5~7)*2

第二个指标是Appliance Type(即应用类型):

·Single Nod,单节点的部署(可以做XS原生开发)。

·Scale-Out,集群扩展的部署(可以做XS原生开发)。

·SoH,部署Suite on HANA(只作为SAP NetWeaver系统的数据库,一般不做XS开发)。

因为硬件服务器中的CPU、磁盘、内存、闪存等都有其规定的严格配比,然后被做成一个SAP HANA硬件服务器的型号,不建议客户自定义攒机升级或者改变其物理配置,所有的标准型号和配置均建议从供应商这边进行采购,自行攒机的话,会给未来的SAP HANA生产系统的技术支持留下潜在的风险。

在没有SAP HANA服务器的情况下,可以在AWS/Azure上购买SAP HANA实例服务。该服务按小时计费,是一个完整的SAP HANA环境。也可以购买阿里云大内存的ECS服务器,然后自己安装SAP HANA系统。

除此之外,因为SAP官方已经认证过SAP HANA是可以运行在认证VMware虚拟机上的,所以,也可以在VMware上安装SAP HANA虚拟机,搭建出一个学习环境。

另外,可以自己准备一个高配置的笔记本或者台式机,或是在淘宝上买二手的PC服务器,稍微加一点内存,就可以在上面直接安装SAP HANA,用于自己学习。

这里有些事情需要提醒大家:

·可以访问http://www.hanapost.com/download站点下载所需的SAP HANA软件。

·SAP HANA认证的服务器硬件通常都配备闪存和磁盘,但有的服务器磁盘全都用闪存盘来代替(例如,联想R680 G7和IBM X3690 X5型号)。在这种情况下,SAP HANA服务器设备就只有内存和闪存盘(SAP HANA系统的日志和数据都会保存在闪存盘上)。

·在安装SAP HANA软件的过程中,唯一需要注意的地方就是,指定Data Volumes和Log Volumes的操作系统文件路径。为Data Volumes(存放SAP HANA系统的数据)和Log Volumes(存放SAP HANA系统的在线日志)所输入的操作系统文件路径必须事先创建好,并且按照SAP官方要求的命名规则创建好。

通常Data Volumes所在的路径为/hana/data/,对应到做完RAID5的磁盘设备,该设备挂载到/hana/data目录;Log Volumes所在的路径为/hana/log/,闪存设备挂载到/hana/log目录。

这里的指的是将要安装的SAP HANA系统的ID。如果需要在同一个硬件服务器上安装1个以上的SAP HANA系统实例(例如,安装一个开发机、一个测试机),就必须创建不同的文件夹,用来区分不同SAP HANA系统的数据和日志文件。否则,不需要。2.1.2 SAP HANA客户端软件1. SAP HANA Studio

SAP HANA Studio简称SAP HANA工作台,它是用于信息模型创建和SAP HANA系统管理的客户端软件,其软件版本必须和SAP HANA数据库系统相同。如果SAP HANA系统的版本是1.0 Revision 95,那么用户就需要在本地计算机上安装SAP HANA Studio 1.0 Revision 95版本的软件。图2-2所示为SAP HANA工作台的一个界面。

SAP HANA工作台是基于开源Eclipse平台开发的一个客户端软件,并且使用了Equinox p2框架简化了基于Eclipse插件的安装和部署。从技术角度来看,SAP HANA工作用的所有功能组件都是插件,且都是基于Eclipse平台基础而开发的。通过这个SAP HANA客户端,可以对SAP HANA系统进行管理和服务器端应用的开发工作。

如图2-3所示,SAP HANA Web-based IDE(简称SAP HANA Web IDE)和SAP HANA工作台的功能一样,它是SAP HANA工作台客户端软件的Web版本,提供了安全管理、XS开发、数据库对象管理等功能。即使不用SAP HANA工作台,也可以通过SAP HANA Web-based IDE来进行XS项目开发。图2-2 SAP HANA工作台的一个界面图2-3 SAP HANA Web IDE界面

SAP HANA Web IDE具有Web化的开发和管理界面,在当前的XS原生应用开发项目中,会使用SAP HANA工作台。这个工具主要配合SAP HCP(即HANA Cloud Platfom,HANA云平台)进行使用。在SAP HCP上,可以注册成SAP HANA开发者,然后使用Web IDE开发基于HANA的原生应用,并可将其发布到App Store上。

关于SAP HCP,可以访问http://hcp.sap.com获得更多信息,例如,如何注册,如何使用Web IDE、第一个基于HCP的Hello World程序等。提示信息:

因为SAP HANA服务器软件安装、升级及其SAP HANA工作的安装都相对比较简单,而且整个向导过程的步骤也不多,安装过程也就十几分钟,所以这里就不介绍相关内容了。2. SAP HANA Client

SAP HANA Client简称SAP HANA客户端软件,它是一组针对不同系统需要访问SAP HANA而准备的驱动程序的集合,根据需要,用户可以选择安装不同操作系统版本的软件。例如,用户有一个安装在Windows服务器上的BI软件(例如Tableau、Qlikview、Lumria等)需要访问SAP HANA,那么就需要安装基于Windows系统相同版本的SAP HANA Client软件。

SAP HANA Client包含ODBC、JDBC、ODBO/MDX、Python、C等驱动程序组件。一旦SAP HANA Client安装好,就可以利用这些驱动访问SAP HANA系统了,这和Oracle DB Client软件非常相似。提示信息:

如果用SAP HANA工作台去连接SAP HANA系统,那么并不需要再安装SAP HANA Client软件,直接在SAP HANA工作台中连接到SAP HANA系统即可,并且还可以通过浏览器直接访问SAP HANA系统提供的Web界面来执行系统管理和监控的一些操作。2.2第一次亲密接触2.2.1 几个系统用户

SAP HANA服务器安装好以后,表2-1中所示的3个用户都是需要提交到SAP HANA系统的管理和运维人员。表2-1 重要的用户

root用户是SAP HANA软件上运行的SUSE Linux操作系统的用户,在安装SAP HANA软件、升级版本、新增服务器节点时都需要使用root用户来执行命令。在安装SAP HANA软件的过程中,安装向导会提示用户为当前安装的SAP HANA系统定义一个SID(系统ID)和Instance Number(实例号)。

·SID通常由字母和数字组成,例如,PRD、TR1、DEV等。

·Instance Number由两位数字组成。

·SID和Instance Number共同组成了一个独立的SAP HANA系统。

在SAP HANA安装完成时,安装向导将创建一个新的操作系统用户,名为adm。如果SAP HANA系统的SID为DEV,那么这个新操作系统用户将被命名为devadm。这个adm用户将用于整个SAP HANA系统的基本管理,例如,启动、停机、重启、备份、恢复,以及通过命令行操作SAP HANA系统等。

在安装SAP HANA系统的过程中,安装向导会提示root用户为SYSTEM用户输入一个初始密码。一旦系统安装完成,用户需要使用这个SYSTEM用户通过SAP HANA工作台登录到SAP HANA系统中,然后创建新用户,为它赋予所需角色等。提示信息:

接下来的所有操作,都将使用“SYSTEM”这个管理员账户来完成,因为其权限比较大,可以直接执行本节的所有操作。如果新创建一个用户,就需要介绍SAP HANA所提供的角色和权限的说明。

对于SAP HANA的操作权限和角色,2.4节会介绍SAP HANA的一些标准角色对象,以及如何做角色管理。此外,在12.2节中,还会介绍不同的用户群访问SAP HANA XS应用时需要哪些权限,以及如何去设计这些权限角色。2.2.2 连接到SAP HANA系统

首先,启动SAP HANA工作台,此时界面将默认停留在“Administration”视角下。此时,在SAP HANA System的左边导航区空白处右击,然后在弹出的快捷菜单中选择“Add System”命令,如图2-4所示。图2-4 添加一个新SAP HANA系统

弹出图2-5所示的窗口,在该窗口中,用户需要输入SAP HANA的连接信息。图2-5 填写系统信息“Host Name”是SAP HANA系统的IP地址或者服务器域名;“Instance Number”是SAP HANA系统的实例号(安装系统时就设定好的);“Mode”则表示你连接的系统是一个单实例HANA(选择Single Container),且是以多租户模式()安装的HANA系统。通常在本地部署的SAP HANA系统都是单实例,因为这样便于内部维护。而多租户模式则在云部署的方式下应用得比较多,不同的客户使用自己的HANA DB,系统的备份和恢复都是相互独立的。“Local”表示当前连接使用什么语言连接到SAP HANA系统。填写好正确的信息之后,单击“Next”按钮,连接向导将进入图2-6所示的界面。图2-6 使用SYSTEM登录

在图2-6所示的界面上输入SYSTEM和密码。因为是第一次登录,HANA系统会要求用户修改SYSTEM的密码。单击“Next”按钮,进入下一步,如图2-7所示。图2-7 确认连接

如果之前填写的信息正确,在这一步的Host文本框中会显示“HANA系统IP或域名:3XX15”,然后单击“Finish”按钮结束上述过程,在SAP HANA工作台中会出现刚才添加的SAP HANA系统的连接信息。注意事项:

在上述过程中,能够看到SAP HANA工作台通过“3XX15”端口和SAP HANA服务器进行通信,如果存在双向的防火墙设置,需要开通对“3XX15”的端口访问。“XX”代表的是SAP HANA系统的Instance Number(实例号,在安装SAP HANA系统的时候由root用户指定)。图2-7中所示的“30015”意味着当前访问的这个SAP HANA系统的Instance Number为00。除此之外,这个实例号还决定了SAP HANA XS服务器的http的访问端口,默认为“80XX”。2.3熟悉SAP HANA工作台

SAP HANA工作台是一个客户端软件,是基于Eclipse核心并且遵守GPL规范进行的扩展和功能开发。SAP提供了不同操作系统版本的软件供用户下载。

SAP HANA工作台的版本必须和SAP HANA服务器的版本相同,Revision的版本尽量不要相差太多,虽然其也支持向下兼容,但是毕竟不同的SPS版本还是有一些差异的,所以,在项目开发中,尽量保持SAP HANA服务器和SAP HANA工作台软件版本的一致性。

作为和SAP HANA系统进行交互工作的客户端软件,SAP HANA工作台软件提供了如下功能:

·对SAP HANA系统进行监控、安全管理、配置管理、审计、启动和升级、系统备份等。

·在SAP HANA中创建数据库表、视图、存储过程、信息模型。

·对SAP HANA进行Data Provision操作,从外部系统实时复制数据到SAP HANA,或者直接将离线CSV文件传输到数据库表中。

·基于SAP HANA共享资源库进行XS原生应用的协同开发、部署、版本管理。2.3.1 视角切换

在启动SAP HANA工作台客户端软件后,单击工具栏上的“”按钮,SAP HANA工作台软件会出现图2-8所示的界面,用户选中不同的视角,然后单击“OK”按钮,将会使SAP HANA工作台切换到不同的视角中。

在SAP HANA工作台中最常用的视角有三个,下面对这三个视角及该视角下的能做的一些操作进行简要介绍。1. SAP HANA Administration Console视角

在该视角下,用户可以对SAP HANA系统执行与系统管理相关的所有操作(例如,监控、权限、备份恢复等)。图2-8 SAP HANA工作台视角切换

如图2-9所示,用户可以在这个视图下查看SAP HANA系统的基本管理信息(例如,内存和CPU使用率),对系统进行配置、日志查看、安全审计和备份等操作。图2-9 SAP HANA系统管理基本信息一览

在这个视角下,管理员用户可以对数据库进行运行监控和管理等操作,创建数据库Schema、表、视图、存储过程,创建用户、角色、赋予权限等操作。此外,还可以单击SQL Console按钮,打开一个SQL查询的执行界面,然后直接输入SQL语句,执行需要完成的操作。提示信息:

在这个管理员视角下,能做的操作就是将SAP HANA当作一个数据库来进行常规的管理操作。2. SAP HANA Development视角

这是SAP HANA XS原生应用的开发视角,也是本书中主要应用的视角。

如图2-10所示,在该视角下,用户可以使用XS系统资源库来管理项目,创建基于SAP HANA的原生应用程序。图2-10 SAP HANA应用开发视角3. SAP HANA Modeler视角

这是SAP HANA信息建模的视角,在SAP HANA提供XS项目的开发功能之前,信息建模视角和系统管理视角是SAP HANA工作台的主要功能。

如图2-11所示,在该视角下,用户主要是创建信息模型(属性视图、分析视图、计算视图,本书中统称为信息模型),并且将开发的内容打包为Delivery Unit(简称DU,交付包),然后在SAP HANA系统中进行DU的导入/导出等。图2-11 Modeler视角下的开发向导界面注意事项:

因为SAP HANA信息建模的功能目前已经全部被整合到XS项目中,所有新开发的信息建模的对象(属性视图、分析视图、计算视图、分析权限)都可以作为一个设计期对象放在XS项目中。从长期来看,这个视角下的功能应该会被逐渐废弃,目前处于一个过渡时期,所以还保留着这个视角。

因为很多老SAP HANA项目的HANA信息模型基本上都是直接在Content目录下开发的,目前无法直接将其迁移到一个XS项目中(迁移过去之后,视图的名字和package都将发生变化),所以,还保留着这个开发视角让客户可以维护原来在非XS项目中直接开发的视图。2.3.2 SAP HANA系统运行期对象

切换到“Administration”视角,当前SAP HANA系统中的所有运行期可以执行的对象都分布在以下4个文件夹中。展开一个SAP HANA系统,就能看到Catalog、Content、Security、Provisioning这4个文件夹,每个文件夹中所保存的内容都是不同的,如图2-12所示。图2-12 SAP HANA系统运行期的对象分类1. Catalog文件夹

Catalog文件夹存放着当前SAP HANA系统下的所有Schema,每个Schema可以被视为一个单独数据库空间。用户可以创建新的Schema,并且可以在新Schema下创建新的数据库表、存储过程、Sequence、触发器、视图等。2. Security文件夹

Security文件夹存放着当前系统的审计策略和设定信息,以及SAP HANA的所有用户、角色。管理员用户可以直接在这里创建新的用户和角色,也可以对已有的用户和角色进行权限上的调整。3. Provisioning文件夹

创建一些SDA的配置,为外部的其他数据源(见图2-13)在SAP HANA中配置一个连接对象。例如,创建一个Oracle的连接,这样可以在SAP HANA中通过Virtual Table作为媒介对Oracle数据库中的表进行读/写操作。图2-13 Provisioning支持的数据源4. Content文件夹

在Content文件下存放着系统自带的业务内容和用户自己开发的业务内容,主要是信息模型对象和分析权限,而且Content下面的package在展开之后,只会显示那些信息模型对象,而将其他的Web对象统统隐藏起来了。如果用户需要查看这些package下被隐藏的对象,需要切换到Repositories标签下进行查看。

如图2-14所示,即使不使用XS项目,用户也可以直接在这里创建package、HANA信息模型(属性视图、分析视图、计算视图)和分析权限对象。图2-14 运行期中Content下可以开发的对象

当然,直接在Content下创建对象是以前的方式,如果需要开发XS应用,那么自然而然,就需要将这些对象创建到XS项目中。注意事项:

即使用户不使用XS项目来进行开发,也可以做其他工作,例如,直接创建Schema、数据库表、存储过程、视图、HANA信息模型、角色等。

但是,唯独Web对象是无法在这三个文件夹下进行开发的,在这种情况下SAP HANA中所开发的对象基本上是用来为外部的BI系统或者应用系统提供数据的。

在SAP HANA提供XS项目、资源库之后,所有的开发都可以迁移到XS项目中进行开发,但是原来的功能还是继续保留,主要原因如下:

·过去直接在Content下开发的对象,用户继续对其进行维护,暂时没必要迁移到一个新的XS项目中。如果要迁移,原来访问这个信息模型的外部应用有可能也需要修改代码(因为对象所在的package路径发生变化,那么激活后的列视图的名称也会带上新的命名空间的路径)。

·在项目上线后,SAP HANA系统的管理员还会创建额外的数据库用户、新角色,供技术支持人员来使用。2.3.3 常用的三个按钮

在图2-14中,有三个按钮,这三个按钮是经常使用的,这三个按钮(从左到右的顺序)的功能如下。

·System Monitoring():打开当前SAP HANA工作台中所有连接上的SAP HANA系统基本监控信息界面。

·Administration():显示当前SAP HANA系统的信息界面,例如,CPU利用率、内存和磁盘使用占比等监控信息。

·SQL Console():打开一个新的SQL命令操作界面。用户可以在SQL Console中输入各种SQL命令对SAP HANA系统进行操作。在后面的很多章节中,笔者只要提及打开一个SQL Console,就是这个界面。如图2-15所示,界面上的TR1(SYSTEM)意味着当前的这个SQL Console是用SYSTEM用户来连接到TR1这个系统的。图2-15 SQL Console界面

用户可以输入SQLScript语句,然后单击按钮或者按F8键执行该SQL代码,最后,在Result选项卡中会出现这个SQL操作的结果,并且在下面的log区域会返回SAP HANA执行该SQL代码所花费的时间,以及处理是否成功的提示。如果出现错误(如权限不够、语法不对),提示信息也会出现在log区域。提示信息:

在SAP HANA工作台中,可能会使用多个不同的用户连接同一个SAP HANA系统。如果要用不同的用户去执行SQL Console界面中的SQL语句,那么只需要单击按钮,就可以切换到其他的用户上。2.3.4 创建表和上传数据1. HANA Schema

用户可以直接在SQL Console界面中输入以下SQL代码,从而创建一个名为TEST的Schema对象。如果不指定所有者,创建的Schema的所有者就是当前执行这个SQL的用户。

语法如下:CREATE SCHEMA [OWNED BY ]

例子如下:CREATE SCHEMA TEST OWNED BY SYSTEM

在创建好TEST之后,启动SAP HANA工作台,使用SYSTEM用户登录到SAP HANA系统,然后展开HANA系统,打开Catalog文件夹,TEST就出现在用户可以访问的列表中了。除了上述这种命令行方式之外,也可以通过可视化向导创建新用户(参考2.4.1节)的方式来创建一个Schema对象。

在SAP HANA工作台中展开Security文件夹,右击,创建一个新用户,在最后激活这个用户时,系统会创建一个和用户同名的Schema。该用户就是这个同名Schema的拥有者。可以对这个Schema进行任何操作,对这个Schema下的内容进行管理。

如图2-16所示,假如使用SYSTEM登录到系统,然后创建DEMO、DEMO_2、HANA_TPCH三个新用户,系统就会自动在Catalog文件下创建出3个同名的Schema对象。图2-16 SAP HANA系统中的Schema及展开后的内容

展开Schema对象,用户可以在其中创建各种数据对象,例如,列视图、数据库视图、索引、表类型、存储过程、数据库表、触发器、序列对象等。除了用户自己创建的新Schema以外,系统也会默认自带一些Schema。表2-2对这些系统默认的Schema进行了简要介绍。表2-2 系统默认自带的一些Schema注意事项:

因为前面提及了SQL Console,这意味着用户可以在SQL Console中执行SQLScript脚本,如CREATE COLUMN TABLE、CREATE SCHEMA等操作。既然可以创建对象,这就引出了一个创建出来的对象的拥有者的问题,因此,这里做一些补充说明。

·所有通过SQL Console创建的数据库对象,其拥有者是当前执行这个SQL命令的用户。如果其他的用户希望访问这个数据库对象,只能让这个对象的拥有者赋予其操作的权限,否则,即使是SYSTEM也无法访问。

·所有在XS项目中创建数据库对象的定义,激活后产生的数据库对象的拥有者是_SYS_REPO这个系统用户。2. HANA Table

前面我们使用SYSTEM账户登录了HANA系统,并且创建了

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载