SAP HANA 计算视图教程

什么是计算视图?

SAP HANA 计算视图是一个强大的信息视图。

SAP HANA 分析视图的度量只能从一个事实表中选择。当信息视图中需要更多事实表时,就会用到计算视图。计算视图支持复杂的计算。

计算视图的数据基础可以包括表、列视图、分析视图和计算视图。

我们可以在数据源上创建连接、联合、聚合和投影。

计算视图可以包含多个度量,用于多维报表;也可以不包含度量,用于列表类报表。

SAP HANA 计算视图的特性如下:

  • 支持复杂计算。
  • 支持 OLTP 和 OLAP 模型。
  • 支持客户端处理、语言、货币转换。
  • 支持联合、投影、聚合、排名等。

SAP HANA 计算视图有两种类型:

  1. SAP HANA 图形计算视图(由 SAP HANA Studio 图形编辑器创建)。
  2. SAP HANA 基于脚本的计算视图(由SAP HANA Studio通过 SQL 脚本创建)。

SAP HANA 图形计算视图

SAP HANA 分析视图中,我们只能从一个表中选择度量。

因此,当需要一个包含来自不同表度量的视图时,分析视图无法实现,但计算视图可以。

在这种情况下,我们可以为每个表使用两个不同的分析视图,并在计算视图中将它们连接起来。

我们将创建一个名为“CA_FI_LEDGER”的图形计算视图,通过连接两个分析视图“AN_PURCHASE_ORDER”和“AN_FI_DOCUMENT”来创建。

CA_FI_LEDGER 将显示与采购订单相关的财务文档详细信息。

步骤 1)在此步骤中,

  1. 转到包(此处为建模)并右键单击。
  2. 选择新建选项。
  3. 选择计算视图。

SAP HANA Graphical Calculation View

将显示计算视图编辑器,其中场景面板显示如下:

SAP HANA Graphical Calculation View

场景面板的详细信息如下:

  • 调色板: 此部分包含可用于构建计算视图的以下节点作为源。

我们有 5 种不同类型的节点,它们是:

  1. Join: 此节点用于连接两个源对象并将结果传递到下一个节点。连接类型可以是内连接、左外连接、右外连接和文本连接。注意:我们只能向连接节点添加两个源对象。
  2. Union: 用于在多个源之间执行 union all 操作。源可以是任意数量的对象。
  3. Projection: 用于选择列、过滤数据并在将其用于联合、聚合和排名等下一个节点之前创建附加列。注意:我们只能向投影节点添加一个源对象。
  4. Aggregation: 用于基于所选属性对特定列执行聚合。
  5. Rank: 这是 SQL 中 RANK 函数的精确替代。我们可以根据需求定义分区和排序子句。

步骤 2)

  1. 从调色板中单击投影节点,然后将其从 Purchase order 分析视图拖放到场景区域。将其重命名为“Projection_PO”。
  2. 从调色板中单击投影节点,然后将其从 FI Document 分析视图拖放到场景区域。将其重命名为“Projection_FI”。
  3. 将内容文件夹中的分析视图“AN_PUCHASE_ORDER”和“AN_FI_DOCUMENT”分别拖放到投影节点和“Projection_FI”节点。
  4. 从调色板中单击连接节点,然后将其拖放到场景区域。
  5. 将 Projection_PO 节点连接到 Join_1 节点。
  6. 将 Projection_FI 节点连接到 Join_1 节点。
  7. 从调色板中单击聚合节点,然后将其拖放到场景区域。
  8. 将 Join_1 节点连接到聚合节点。

SAP HANA Graphical Calculation View

我们已添加两个分析视图,以创建计算视图。

步骤 3) 单击聚合下的 Join_1 节点,您将看到详细信息部分已显示。

  1. 从 Projection_PO 节点中选择所有列用于输出。
  2. 从 Projection_FI 节点中选择所有列用于输出。
  3. 将 Projection_PO 节点连接到 Projection_FI 节点,基于列 Projection_PO. PO_Number = Projection_FI.PO_NO。

SAP HANA Graphical Calculation View

步骤 4) 在此步骤中,

  1. 单击聚合节点,详细信息将显示在窗格的右侧。
  2. 在右侧的详细信息窗口中,从 Join_1 中选择用于输出的列。

SAP HANA Graphical Calculation View

步骤 5) 现在,单击语义节点。

SAP HANA Graphical Calculation View

将显示详细信息屏幕,如下所示。为列定义属性和度量类型,并为此输出标记键。

  1. 定义属性和度量。
  2. 将 PO_Number 和 COMPANY 标记为键。
  3. 将 ACC_DOC_NO 标记为键。

SAP HANA Graphical Calculation View

步骤 6) 从窗口顶部栏验证并激活计算视图。

SAP HANA Graphical Calculation View

  1. 单击验证图标。
  2. 单击激活图标。

计算视图将被激活,并将显示在建模包下,如下所示:

SAP HANA Graphical Calculation View

选择计算视图,右键单击 -> 数据预览

我们已添加两个分析视图,并从两个分析视图中选择了度量(TAX_AMOUNT、GROSS_AMOUNT)。

数据预览屏幕将显示如下:

SAP HANA Graphical Calculation View

CE 函数,也称为计算引擎计划运算符(CE 运算符),是 SQL 语句的替代方案。

CE 函数有两种类型:

数据源访问函数

此函数将列表或列视图绑定到表变量。

以下是一些数据源访问函数列表:

  • CE_COLUMN_TABLE
  • CE_JOIN_VIEW
  • CE_OLAP_VIEW
  • CE_CALC_VIEW

关系运算符函数

通过使用关系运算符,用户可以绕过 SQL 处理器进行评估,并直接与计算引擎通信。

以下是一些关系运算符函数列表:

  • CE_JOIN(用于在两个源之间执行内连接并读取所需的列/数据。)
  • CE_RIGHT_OUTER_JOIN(用于在两个源之间执行右外连接,并将查询的列显示到输出。)
  • CE_LEFT_OUTER_JOIN(用于在源之间执行左外连接,并将查询的列显示到输出。)
  • CE_PROJECTION(此函数显示源中的特定列并应用过滤器来限制数据。它还提供列名别名功能。)
  • CE_CALC(用于根据业务需求计算附加列。这与图形模型中的计算列相同。)

以下是包含 CE 函数的 SQL 列表以及一些示例:

查询名称 SQL 查询 CE-内置函数
选择列表查询 SELECT C, D From “COLUMN_TABLE”。 CE_COLUMN_TABLE(“COLUMN_TABLE”,[C,D])
选择属性视图查询 SELECT C, D From “ATTRIBUTE_VIEW” CE_JOIN_VIEW(“ATTRIBUTE_VIEW”,[C,D])
选择分析视图查询 SELECT C, D, SUM(E) From “ANALYTIC_VIEW” Group By C,D CE_OLAP_VIEW(“ANALYTIC_VIEW”,[C,D])
选择计算视图查询 SELECT C, D, SUM(E) From “CALCULATION_VIEW” Group By C,D CE_CALC_VIEW(“CALCULATION_VIEW”,[C,D])
Where Having SELECT C, D, SUM(E) From “ANALYTIC_VIEW” Where C = ‘value’ Var1= CE_COLUMN_TABLE(“COLUMN_TABLE”);
CE_PROJECTION(:var1,[C,D],“C” =“value”/