SAP HANA 计算视图教程
什么是计算视图?
SAP HANA 计算视图是一个强大的信息视图。
SAP HANA 分析视图度量只能从一个事实表中选择。当信息视图中需要更多事实表时,计算视图就会出现。计算视图支持复杂计算。
计算视图的数据基础可以包括表、列视图、分析视图和计算视图。
我们可以创造 加入、数据源上的联合、聚合和投影。
计算视图可以包含多个度量,并且可以用于多维报告或无度量(用于列表类型报告)。
的特征 SAP HANA 计算视图如下 –
- 支持复杂计算。
- 支持OLTP和OLAP模型。
- 支持客户端处理、语言、货币转换。
- 支持 Union、Projection、Aggregation、Rank 等。
SAP HANA 计算视图有两种类型 -
- SAP HANA 图形计算视图(由 SAP HANA Studio 图形编辑器)。
- SAP HANA 基于脚本的计算视图(由 SQL 脚本创建) SAP HANA 工作室).
SAP HANA 图形计算视图
In SAP HANA 分析视图,我们只能从一个表中选择一个度量。
因此,当需要一个包含来自不同表的度量的视图时,它不能通过分析视图来实现,而只能通过计算视图来实现。
因此在这种情况下,我们可以对每个表使用两个不同的分析视图,并在计算视图中将它们连接起来。
我们将通过连接两个分析视图“AN_PURCHASE_ORDER”和“AN_FI_DOCUMENT”来创建一个图形计算视图“CA_FI_LEDGER”。
CA_FI_LEDGER 将显示与采购订单相关的财务文件详细信息。
步骤1) 在此步骤中,
- 转到包(此处建模)并右键单击。
- 选择新选项。
- 选择计算视图。
将显示计算视图编辑器,其中场景面板显示如下 -
场景面板的详细信息如下 -
- 调色板: 本节包含以下节点,可用作构建计算视图的源。
我们有 5 种不同类型的节点,它们是
- 加入: 此节点用于连接两个源对象并将结果传递到下一个节点。连接类型可以是内连接、左外连接、右外连接和文本连接。请注意: 我们只能将两个源对象添加到连接节点。
- 联盟: 用于在多个源之间执行 union all 操作。源可以是 n 个对象。
- 投影: 这用于选择列、过滤数据并创建附加列,然后我们在下一个节点(如联合、聚合和排名)中使用它。请注意: 我们只能在投影节点中添加一个源对象。
- 聚合: 这用于根据所选属性对特定列执行聚合。
- 排名: 这是 SQL 中 RANK 函数的精确替代品。我们可以根据需要定义分区和 order by 子句。
步骤2)
- 从调色板单击 Projection 节点,然后将其从采购订单分析视图拖放到场景区域。将其重命名为“Projection_PO”。
- 从调色板单击 Projection 节点,然后将其拖放到 FI 文档分析视图的场景区域。将其重命名为“Projection_FI”。
- 将分析视图“AN_PUCHASE_ORDER” “AN_FI_DOCUMENT” 分别从内容文件夹拖放到投影节点和“Projection_FI”。
- 从调色板中单击“加入节点”,然后将其拖放到场景区域。
- 将 Projection_PO 节点连接到 Join_1 节点。
- 将 Projection_FI 节点连接至 Join_1 节点。
- 从调色板单击聚合节点并将其拖放到场景区域。
- 将 Join_1 节点加入到 Aggregation 节点。
我们添加了两个分析视图,用于创建计算视图。
步骤3) 单击聚合下的 Join_1 节点,您可以看到显示了详细信息部分。
- 从 Projection_PO 节点中选择所有列进行输出。
- 从 Projection_FI 节点中选择所有列进行输出。
- 将 Projection_PO 节点连接到 Projection_FI 节点上的 Projection_PO 列。PO_Number = Projection_FI.PO_NO。
步骤4) 在此步骤中,
- 单击“聚合”节点,详细信息将显示在窗格右侧。
- 从详细信息窗口右侧显示的Join_1中选择用于输出的列。
步骤5) 现在,单击语义节点。
详细信息屏幕将显示如下。定义列的属性和度量类型,并标记此输出的键。
- 定义属性和度量。
- 将 PO_Number 和 COMPANY 标记为关键。
- 将 ACC_DOC_NO 标记为关键。
步骤6) 从窗口顶部栏验证并激活计算视图。
- 单击验证图标。
- 点击激活图标。
计算视图将被激活,并将显示在建模包下,如下所示 -
选择计算视图并右键单击->数据预览
我们添加了两个分析视图,并从两个分析视图中选择度量(TAX_AMOUNT,GROSS_AMOUNT)。
数据预览屏幕将显示如下内容 -
CE 函数也称为计算引擎计划 Opera托尔(CE Opera语法树)是 SQL 语句的替代方法。
CE 功能有两种类型 –
数据源访问函数
此函数将列表或列视图绑定到表变量。
以下是一些数据源访问功能列表 -
- 列表
- CE_JOIN_VIEW
- OLAP_VIEW 视图
- CE_CALC_VIEW
相关的 Operator 函数
通过使用关系 Opera用户可以绕过 SQL 处理器在评估过程中并直接与计算引擎通信。
以下是一些关系 Operator 函数列表 –
- CE_JOIN(用于执行两个源之间的内连接并读取所需的列/数据。)
- CE_RIGHT_OUTER_JOIN(用于在两个源之间执行右外连接并将查询的列显示到输出中。)
- CE_LEFT_OUTER_JOIN(用于在源之间执行左外连接并将查询的列显示到输出)。
- CE_PROJECTION(该函数显示源中的特定列并应用过滤器来限制数据。它还提供列名别名功能。)
- CE_CALC(用于根据业务需求计算附加列。这与图形模型中的计算列相同。)
下面是一个列表 SQL 使用 CE 函数和一些示例-
查询名称 | SQL查询 | CE-内置功能 |
---|---|---|
根据列表选择查询 | 从“COLUMN_TABLE”中选择C,D。 | CE_COLUMN_TABLE(“COLUMN_TABLE”,[C,D]) |
选择属性视图上的查询 | 从“ATTRIBUTE_VIEW”中选择 C、D | CE_JOIN_VIEW(“ATTRIBUTE_VIEW”,[C,D]) |
在分析视图上选择查询 | 从“ANALYTIC_VIEW”中选择 C、D、SUM(E),按 C、D 分组 | CE_OLAP_VIEW(“ANALYTIC_VIEW”,[C,D]) |
在计算视图上选择查询 | 从“CALCULATION_VIEW”中选择 C、D、SUM(E),按 C、D 分组 | CE_CALC_VIEW(“CALCULATION_VIEW”,[C,D]) |
哪里有 | 从“ANALYTIC_VIEW”中选择 C、D、SUM(E),其中 C = 'value' | Var1=CE_COLUMN_TABLE(“COLUMN_TABLE”); CE_PROJECTION(:var1,[C,D],”C” =”值”/ |