SAP HANA 分析视图:如何创建和使用

⚡ 智能摘要

SAP HANA 分析视图将数据建模为星型模式,将中央事实表连接到属性视图,以便可以动态聚合事务数据,从而在内部进行多维分析。 SAP HANA 工作室。

  • 🔘 结构体: 事实表位于中心,其中包含交易数据,周围环绕着维度表和可重用的属性视图。
  • ☑️ 节点: 时间 Foundation 包含事实表,星形连接附加属性视图,语义定义输出。
  • 措施: 数据基础中可能存在多个表,但只能从其中一个表中选择度量值。
  • 🧪 计费示例: PURCHASE_ORDER 和 PURCHASE_DETAIL 以 PO_NUMBER 连接,AT_PRODUCT 属性视图以 PRODUCT_ID 连接。
  • 🛠️ 激活: 验证和激活会将视图作为列视图发布到 _SYS_BIC 模式中以进行报告。
  • 📈 方向: 分析视图已被弃用,因此新的立方体式模型应放在图形计算视图中。

分析视图星型模式建模 SAP HANA

什么是分析视图? SAP 花?

分析视角 SAP HANA 基于星型模式建模,是一个 OLAP(联机分析处理)或多维建模对象。它形成一个类似立方体的结构,用于分析数据,适用于任何需要从底层表中聚合数据的场景。

在分析视图中,维度表与包含交易数据的事实表相连。维度表包含描述性数据,例如产品、产品名称、供应商或客户。事实表包含描述性数据以及可计量数据,例如金额和税额。

由于聚合操作在查询时于内存中发生,因此无需存储聚合表。视图只需定义一次。 SAP HANA建模 并且被所有阅读该报告的报告重复使用。

示例 SAP HANA 分析视图

这里,基于以下信息,为采购订单创建分析视图: 属性视图 “AT_PRODUCT”表已创建。采购订单表头和采购订单明细表提供交易数据。

在以下两个脚本中运行: SQL 控制台 SAP HANA 工作室 在建模步骤开始之前。

使用 SQL 脚本在“DHK_SCHEMA”中创建表“PURCHASE_ORDER”

CREATE COLUMN TABLE "DHK_SCHEMA"."PURCHASE_ORDER"					
(		
PO_NUMBER NVARCHAR(10) primary key,							
COMPANY NVARCHAR (4),			
PO_CATEGORY NVARCHAR(2),			
PRODUCT_ID NVARCHAR(10),			
VENDOR NVARCHAR(10),			
TERMS NVARCHAR(4),			
PUR_ORG NVARCHAR(4),			
PUR_GRP NVARCHAR(3),			
CURRENCY NVARCHAR(5),			
QUOTATION_NO NVARCHAR(10),			
PO_STATUS VARCHAR(1),			
CREATED_BY NVARCHAR(20),			
CREATED_AT DATE		
);		

INSERT	INTO "DHK_SCHEMA"."PURCHASE_ORDER" VALUES(1000001,1000,'MM','A0001','V000001','CASH' ,1000,'GR1','INR',1000011,'A','HANAUSER','2016-01-07');																													
INSERT INTO "DHK_SCHEMA"."PURCHASE_ORDER" VALUES(1000002,2000,'MM','A0002','V000001','CASH',1000,'GR1','INR',1000012,'A','HANAUSER','2016-01-06');																			
INSERT INTO "DHK_SCHEMA"."PURCHASE_ORDER" VALUES(1000003,2000,'MM','A0003','V000001','CASH',1000,'GR1','INR',1000013,'A','HANAUSER','2016-01-07');																			
INSERT INTO "DHK_SCHEMA"."PURCHASE_ORDER" VALUES(1000004,2000,'MM','A0004','V000001','CASH',1000,'GR1','INR',1000014,'A','HANAUSER','2016-01-07');

在“DHK_SCHEMA”中创建表“PURCHASE_DETAIL”的SQL脚本

CREATE	 COLUMN TABLE "DHK_SCHEMA"."PURCHASE_DETAIL"					
(		
PO_NUMBER NVARCHAR(10) primary key,							
COMPANY NVARCHAR(4),			
PO_CATEGORY NVARCHAR(2),			
PRODUCT_ID NVARCHAR(10),			
PLANT NVARCHAR(4),			
STORAGE_LOC NVARCHAR(4),			
VENDOR NVARCHAR(10),			
TERMS NVARCHAR(4),			
PUR_ORG NVARCHAR(4),			
PUR_GRP NVARCHAR(3),			
CURRENCY NVARCHAR(5),			
QUANTITY SMALLINT,			
QUANTITY_UNIT VARCHAR(4),			
ORDER_PRICE DECIMAL(8,2),			
NET_AMOUNT DECIMAL(8,2),			
GROSS_AMOUNT DECIMAL(8,2),			
TAX_AMOUNT DECIMAL(8,2)			
);		


INSERT	INTO "DHK_SCHEMA"."PURCHASE_DETAIL"	VALUES(1000001,1000,'MM','A0001',1001,101,
'V000001','CASH',1000,'GR1','INR',10,'UNIT',50000.00,40000.00,50000.00,10000.00);																									
INSERT	INTO "DHK_SCHEMA"."PURCHASE_DETAIL"	VALUES(1000002,2000,'MM','A0002',1002,102,
'V000002','CASH',1000,'GR1','INR',10,'UNIT',60000.00,48000.00,60000.00,12000.00);																									
INSERT	INTO "DHK_SCHEMA"."PURCHASE_DETAIL"	VALUES(1000003,2000,'MM','A0003',1003,103,
'V000001','CASH',1000,'GR1','INR',20,'UNIT',40000.00,32000.00,40000.00,8000.00);																									
INSERT	INTO "DHK_SCHEMA"."PURCHASE_DETAIL"	VALUES(1000004,2000,'MM','A0004',1004,104,
'V000002','CASH',1000,'GR1','INR',20,'UNIT',20000.00,16000.00,20000.00,4000.00);																	

这两个脚本创建了“PURCHASE_ORDER”和“PURCHASE_DETAIL”表及其数据。

如何在分析视图中创建分析视图 SAP HANA

下面根据属性视图“AT_PRODUCT”和表“PURCHASE_ORDER”和“PURCHASE_DETAIL”创建一个名为“AN_PUR​​CHASE_ORDERS”的分析视图。这十个步骤与编辑器屏幕的顺序一致。

步骤1) 从下面显示的包树中创建一个新的分析视图。

  1. 选择 DHK_SCHEMA 包下的 Modelling 子包。
  2. 右键单击并选择“新建”。
  3. 选择“分析视图”选项。

建模子包中的新分析视图选项 SAP HANA 工作室

步骤2) 信息视图编辑器随即打开,用于分析视图。请完成下方所示的创建对话框。

  1. 输入分析视图名称“AN_PUR​​CHASE_ORDERS”及其标签。
  2. 选择视图类型“分析视图”。

创建名为 AN_PUR​​CHASE_ORDERS 的分析视图对话框,视图类型为

输入完成后,单击“完成”按钮。此时将显示分析视图的信息视图编辑器。

步骤3) 将架构中的表添加到数据中 Foundation 场景窗格下的节点。场景窗格包含三个节点。

  1. 语义: 该节点表示视图的输出结构。
  2. 明星加入: 此节点创建连接,将属性视图附加到事实表。
  3. 时间 Foundation: 此节点包含分析视图的事实表。可以添加多个表,但只能从其中一个表中选择度量值。

将 DHK_SCHEMA 中的“PURCHASE_ORDER”和“PURCHASE_DETAIL”表拖放到数据表中。 Foundation 节点,如下图所示。

PURCHASE_ORDER 和 PURCHASE_DETAIL 表已删除 Foundation 节点

步骤4) 将属性视图添加到星形连接节点。

  1. 从建模包中选择“AT_PRODUCT”属性视图。
  2. 将属性视图拖放到星形连接节点上,如下图所示。

将 AT_PRODUCT 属性视图拖到场景窗格的星形连接节点上

步骤5) 在同一窗口中,按照指示在详细信息面板中进行操作。

  1. 点击数据 Foundation 节点。添加到该节点的表格将显示在详细信息部分。
  2. 将“PURCHASE_ORDER”表与“PURCHASE_DETAIL”表按“PO_NUMBER”字段连接起来。
  3. 进入 连接类型 以及基数。

编辑连接屏幕,将 PURCHASE_ORDER 和 PURCHASE_DETAIL 连接起来,连接条件为 PO_NUMBER

点击“确定”按钮以保持连接。

步骤6) 在同一窗口中选择以下列。

  1. 从“PURCHASE_DETAIL”表中选择 PO_NUMBER、COMPANY、PO_CATEGORY、PRODUCT_ID、PLANT 和 STORAGE_LOC。
  2. 从“PURCHASE_DETAIL”表中选择 CURRENCY 列。
  3. 选择 GROSS_AMOUNT 和 TAX_AMOUNT。
  4. 从“PURCHASE_ORDER”表中选择 PO_STATUS、CREATED_BY 和 CREATED_AT 列,该表是采购订单表头。

选择后,数据基础的输出列以橙色突出显示。

所有选定的列(以橙色标记)都会出现在分析视图的输出中。

步骤7) 将属性视图连接到数据基础中的事实表。单击方案窗格中的“星形连接”节点,如下图所示。

在分析视图编辑器的场景窗格中选择星形连接节点

属性视图和事实表显示在详细信息窗格中。将属性视图与数据基础表基于“PRODUCT_ID”列进行连接,如下所示。

属性视图通过 PRODUCT_ID 列连接到数据基础。

点击连接链接。此时会弹出“编辑连接”窗口,连接类型定义为“引用”,基数定义为 1…1。

编辑连接弹出窗口,连接类型为引用连接,基数为 1 对 1

点击“确定”按钮确认星形连接。

步骤8) 定义视图的属性、度量和键。在场景窗格中选择“语义”节点,如下图所示。

在场景窗格中选择语义节点以定义属性和度量

  1. 在详细信息窗格中选择“列”选项卡。
  2. 将列类型定义为属性或度量。除“GROSS_AMOUNT”列被定义为度量外,此处所有列均为属性。

列选项卡将 GROSS_AMOUNT 标记为度量,其余标记为属性

步骤9) 从工具栏验证并激活分析视图。

  1. 验证分析观点。
  2. 启用分析视图。

分析视图编辑器工具栏上的“验证”和“激活”图标

如下所示,分析视图“AN_PUR​​CHASE_ORDERS”现已在建模子包的分析文件夹中创建并激活。

建模包的分析文件夹下列出了 AN_PUR​​CHASE_ORDERS 目录

步骤10) 在分析视图中预览数据。

  1. 转到工具栏部分,然后单击“数据预览”图标。
  2. 选择在数据预览编辑器中打开。

数据预览图标将打开分析视图的数据预览编辑器。

数据预览编辑器中提供了三个选项卡。 信号分析 该选项卡可将属性和度量拖放到标签轴和值轴上,并将输出显示为图表、表格、网格或 HTML,如下所示。

分析选项卡图表显示了采购订单指标与标签轴属性的关系

不同的价值 此选项卡一次显示一个选定属性的不同值,如下所示。

“唯一值”选项卡列出了所选属性的唯一条目

原始数据 该选项卡以表格形式显示记录,如下所示。

“原始数据”选项卡以表格格式显示分析视图记录。

注意: 分析视图仅接受属性视图作为其维度,不支持其他维度。 工会 运算符。通过以下方式对激活的视图应用行级限制: 分析权限.

属性视图和分析视图已弃用。 SAP HANA 2.0 中不可用 SAP 因此,HANA Cloud 构建了新的立方体式模型,并以图形化方式呈现。 计算视图 数据类别为多维数据集,采用星型连接。以上步骤仍然适用于现有数据集。 SAP HANA 2.0 系统及其建模概念均可沿用。更多背景信息请参见…… SAP HANA 系列丛书中。

常见问题

分析视图对一个星型模式进行建模,该模式使用单个事实表提供度量值。计算视图则对任何数据源(包括其他视图)进行投影、连接、联合和聚合操作,因此它可以处理分析视图无法表达的逻辑。

数据基础仅包含一个事实表。虽然可以连接其他表以添加属性来丰富该表,但如果允许使用多个表中的度量值,则在聚合过程中会倍增行数,从而导致总计值虚高。

是的。计算列、受限度量、输入参数和变量都在语义节点中定义。它们在运行时进行评估,因此底层表保持不变,视图的每个使用者看到的逻辑都相同。

人工智能助手 SAP 工具会建议连接路径、标记未使用的列,并根据过去的查询计划预测开销较大的聚合操作。机器学习应用于工作负载。 traces 还建议公开哪些指标,但建模人员仍然会对每个结果进行验证。

GitHub Copilot 可以自动生成用于创建或查询视图的 CREATE COLUMN TABLE 和 SELECT 语句,从而加快测试数据脚本的运行速度。但生成的 SQL 语句仍需根据实际的 HANA 语法、权限和列名进行审核。

分析视图仍然可用 SAP HANA 2.0,但已被弃用。 SAP HANA Cloud 仅支持计算视图,因此现有的分析视图被重建为具有星形连接节点的数据类别立方体的图形计算视图。

行级筛选是通过分析权限实现的,该权限限制用户可以读取的选定属性的值。视图本身保持不变,对象权限本身并不会限制返回哪些行。

激活操作会在 _SYS_BIC 模式中生成一个列视图。任何 SQL 客户端, SAP 分析云, SAP 只要用户拥有所需的权限,BusinessObjects、ODBC 或 JDBC 报表就可以查询该列视图。

总结一下这篇文章: