本节书摘来自华章出版社《sap hana平台应用开发》一书中的第3章,第3.1节信息建模,作者刘刚,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第3章 信 息 建 模
如果读者已经具有关于sap hana信息建模和存储过程的知识,可以跳过本章及第4章,直接学习第5章,这样并不会对后续的学习有任何影响。
在sap hana中进行xs应用开发时,最先接触到的开发对象应就是hana信息模型(属性视图、分析视图、计算视图、sql视图)了。但是,信息建模仅仅是sap hana xs应用开发的一个组成部分,相对比较独立。
在实际项目中,不使用任何信息模型也能完成整个xs应用的开发。但是,因为基于sap hana的信息模型是一个虚拟多维数据立方体,并且还提供了应用权限(application privileges)对象,这可以使我们很容易应用它的高效率聚合运算、层级视图、虚拟计算列、访问隔离特性、灵活复用性、易于升级等功能,而且信息模型的运算效率比纯sql的表关联查询效率要高,这也是在xs应用中大量应用它的原因。
**注意事项:
第3章和第4章执行和演示的开发方式均没有采用xs项目的方式,而是直接在hana运行期的content下进行开发的。之所以这样做,是因为sap hana信息建模只是xs应用开发的一个部分,并且不依赖于任何xs对象,它还早于xs应用服务器被包含到sap hana产品中的,所以,笔者觉得第3章和第4章与xs应用开发没有直接关系(没有引用任何xs应用的对象)。只是从sps08开始,hana信息建模也有了设计期对象(xxx.attributeview、xxx.analyticalview等),开发人员在xs项目中对其进行创建、修改、激活操作。
如果将这些信息建模的内容放入xs应用开发的过程中进行讲解,读者可能突然就从xs应用的开发中跳转到hana信息建模了,然后在2章之后,又回到xs应用的开发,这样会导致本书的编排出现问题,会使读者觉得内容不够自然和流畅。
学习完sap hana信息建模之后,再学习开发xs应用,直接在xs项目下创建一个hana信息模型、分析权限,然后在xs项目中使用这些创建好的信息模型就可以了。
这里应注意一点:在xs应用下开发的sap hana信息模型是放在xs项目下的package中,而不是直接在content中创建出来的。**
3.1 准备工作和tpc-h
在2.3.4节,已经创建了demo、demo_2、hana_tpch三个用户,接下来会使用hana_tpch用户登录到sap hana系统,然后创建tpc-h表,并且导入一些测试数据。
hana_tpch这个用户拥有以下权限:
modeling(系统权限)。
_sys_bic的select、execute操作权限。
_sys_bi的select、execute操作权限。
tpc-h表定义的sql脚本和数据,可以在www.hanapost.com/download中下载,打开tpc-h的sql脚本之后,记得将schema名字换成你自己创建的schema名字。图3-1所示为tpc-h模型的所有数据库表的关系图,如果读者创建了一些测试数据,也应考虑这些数据的一致性。
接下来,介绍在sap hana工作台中的具体操作步骤。由于attribute view(属性视图)是sap hana建模的基础,因此这里先介绍如何使用sap hana工作台的建模工具创建tpc-h模型中的两个属性视图,如图3-2所示。
本节将重点介绍客户(customer)属性视图的创建步骤。对于供应商部件(supplier_part),其操作步骤与客户类似。为了节省篇幅,在本节的结尾只会围绕几个截图进行简要介绍,不再涉及具体步骤。
从建模方法来看,sap hana建模应该归到rolap(relational olap)的范畴,因此,属性视图取代了传统rdbms中的维度表。并且,可以使用属性视图实现更加灵活、复杂的功能:
可以在多张oltp业务表的基础上构建单个维度。
可以暴露数据库表的部分列,或添加新列(calculated column)。
可以预先设置过滤条件(filter),减少查询时的数据量,提高效率。
可以创建hierarchy(层次结构),实现分析中常用的钻取功能。

sap hana模型视图需要存放在同一个地方,所以,首先需要创建一个后面要用到的package。在本例中,创建一个名为demo的package。
步骤如下:切换到sap hana modeler视角,然后在content文件夹中右击,创建一个package(名称为demo),暂时不为它分配任何delivery unit。