位置:首页 > SAP开发 > HANA教程 > SAP HANA 信息建模

SAP HANA 信息建模

SAP HANA信息建模也称为HANA数据建模,是HANA系统的核心。它可以在数据库表的顶部创建建模视图,并实现业务逻辑以创建有意义的分析报表。

信息建模的特点

  • 提供存储在HANA数据库的物理表中的事务数据的多个视图,用于分析和业务逻辑目的。

  • 信息建模仅适用于基于列的存储表。

  • 信息建模视图由基于Java或HTML的应用程序或SAP工具(如SAP Lumira或Analysis Office)用于报表目的。

  • 也可以使用第三方工具(如MS Excel)连接到HANA并创建报表。

  • SAP HANA建模视图利用SAP HANA的实力。

有三种类型的信息视图,定义为:

  • 属性视图
  • 分析视图
  • 计算视图

行与列存储

SAP HANA建模视图只能在基于列的表格的顶部创建。将数据存储在基于列的表格中并不是什么新事物。早些时候,人们假设在基于列的结构中存储数据需要更多的内存大小,而不是性能优化。

行与列存储
随着SAP HANA的发展,HANA在信息视图中使用了基于列的数据存储,并展示了基于列的表的真正优势。

列存储

在列存储表中,数据是垂直存储的。因此,类似的数据类型汇集在一起,如上例所示。它借助内存计算引擎提供更快的内存读取和写入操作。
在常规数据库中,数据存储在基于行的结构中,即水平存储。SAP HANA可在基于行和列的结构中存储数据。这在HANA数据库中提供了性能优化,灵活性和数据压缩。
在基于列的表中存储数据具有以下优点:

  • 数据压缩

  • 与传统的基于行的存储相比,对表的读取和写入更快

  • 灵活性和并行处理

  • 以更高的速度执行聚合和计算

有多种方法和算法可以将数据存储在基于列的结构中 - 字典压缩,运行长度压缩等等。
在字典压缩中,单元格以数字的形式存储在表中,而与字符相比,数字单元格总是性能优化的。

在运行长度压缩中,它以数字格式保存乘数与单元格值,乘数在表中显示重复值。

列存储

功能差异 - 行与列存储

如果SQL语句必须执行聚合函数和计算,则始终建议使用基于列的存储。基于列的表在运行聚合函数(如Sum,Count,Max,Min)时总是执行得更好。

当输出必须返回完整的行时,首选基于行的存储。下面给出的示例使其易于理解。

功能差异

在上面的例子中,当使用Where子句在sales列中运行Aggregate函数(Sum)时,它在运行SQL查询时只使用Date和Sales列,因此如果它是基于列的存储表,那么它将进行性能优化,更快速,因为数据只需要来自两列。

在运行一个简单的Select查询时,必须在输出中打印完整行,因此建议在此情况下将表存储为Row。

信息建模视图

属性视图

属性在数据库表中是不可测量的元素。它们代表主数据,类似于BW的特性。属性视图是数据库中的维度,或用于在建模中连接维度或其他属性视图。

其重要特点是: 

  • 属性视图可用于分析视图和计算视图。
  • 属性视图代表主数据。
  • 用于在分析视图和计算视图中过滤维度表的大小。

属性视图

分析视图

分析视图使用SAP HANA的功能对数据库中的表执行计算和聚合函数。 它具有至少一个事实表,其具有维度表的度量和主键,并且由维度表包围的包含主数据。

其重要特点是:

  • 分析视图旨在执行星型模式查询。

  • 分析视图至少包含一个事实表和带有主数据的多维表,并执行计算和聚合

  • 它们与SAP BW中的信息块和信息对象类似。

  • 可以在属性视图和事实表之上创建分析视图,并执行计算,例如销售的单位数量,总价格等。

计算视图

计算视图在分析视图和属性视图之上使用,以执行复杂计算,这对分析视图是不可能的。计算视图是基于列的表,属性视图和提供业务逻辑的分析视图的组合。

其重要特点是:

  • 计算视图使用HANA建模功能或SQL中的脚本定义图形。

  • 它被创建以执行复杂的计算,这是其他视图无法实现的,如SAP HANA建模的属性视图和分析视图。

  • 一个或多个属性视图和分析视图在内置函数(如项目,联合,联接,计算视图中的排名)的帮助下消耗。