SAP HANA - 信息建模器


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

信息建模器的特点

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

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

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

  • 还可以使用 MS Excel 等第三方工具连接到 HANA 并创建报告。

  • SAP HANA 建模视图充分利用 SAP HANA 的真正力量。

信息视图分为三种类型,定义为 -

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

行存储与列存储

SAP HANA Modeler 视图只能在基于列的表的顶部创建。在列表中存储数据并不是什么新鲜事。早些时候,人们认为在基于列的结构中存储数据需要更多的内存大小,并且没有优化性能。

行存储与列存储

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

列存储

在列存储表中,数据是垂直存储的。因此,类似的数据类型聚集在一起,如上例所示。它借助内存计算引擎提供更快的内存读写操作。

在传统的数据库中,数据以基于行的结构存储,即水平存储。SAP HANA 以基于行和列的结构存储数据。这为 HANA 数据库提供了性能优化、灵活性和数据压缩。

在基于列的表中存储数据有以下好处 -

  • 数据压缩

  • 与传统的基于行的存储相比,对表的读写访问速度更快

  • 灵活性和并行处理

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

有多种方法和算法可以将数据存储在基于列的结构中 - 字典压缩、游程压缩等等。

在字典压缩中,单元格以数字形式存储在表中,并且与字符相比,数字单元格始终进行性能优化。

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

列存储

功能差异 - 行存储与列存储

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

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

行存储与列存储功能

在上面的示例中,当使用Where子句在销售列中运行聚合函数(Sum)时,在运行SQL查询时只会使用日期和销售列,因此如果它是基于列的存储表,那么它将进行性能优化,速度比数据更快仅需要两列。

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

信息建模视图

属性视图

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

重要特点是 -

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

分析视图

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

重要特点是 -

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

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

  • 它们类似于 SAP BW 中的信息立方体和信息对象。

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

计算视图

计算视图在分析视图和属性视图之上使用来执行复杂的计算,这是分析视图无法实现的。计算视图是基本列表、属性视图和分析视图的组合,提供业务逻辑。

重要特点是 -

  • 计算视图可以使用 HANA 建模功能以图形方式定义,也可以在 SQL 中编写脚本。

  • 创建它是为了执行复杂的计算,这是其他视图(SAP HANA 建模器的属性视图和分析视图)无法实现的。

  • 借助计算视图中的项目、并集、联接、排名等内置功能,可以使用一个或多个属性视图和分析视图。