跳到主要内容

SAP S4HANA 嵌入式实时分析 - 1/4 语义模型

· 阅读需 12 分钟
Tiven Wang

嵌入式分析介绍

元数分析云是一款强大的数据分析工具,能够直接连接到 SAP S/4HANA 系统,利用 CDS (Core Data Services) 视图生成的 Transient Analytical Queries,实现嵌入式实时数据分析。 它利用 SAP HANA 数据库的内存计算能力,提供实时的数据分析和报告功能,使用户能够在业务操作中直接获取洞察。

本系列 SAP S/4HANA 嵌入式分析功能介绍,我们将分为三篇进行讲解:

  1. 语义模型,探讨如何利用元数分析云的语义模型功能,对 CDS 模型进行增强,包括定义日历语义和使用 MDX 语句创建计算度量,为后续的故事仪表板和指标管理做好基础。
  2. 故事仪表板,介绍如何创建可视化仪表板,利用增强过的 CDS 模型制作丰富多样的故事和计算度量功能。
  3. 指标管理,探讨如何对 CDS 模型定义一系列指标,形成系统化的指标管理功能,便于企业内管理者订阅和分析指标,实时监控企业经营数据。
SAP S/4HANA On-Premise Embedded Analytics
SAP S/4HANA On-Premise Embedded Analytics

本篇文章将介绍如何通过元数分析云的语义模型功能,对 CDS 模型进行增强,包括日历语义定义、计算度量等内容。

环境前提

在开始之前,请确保已经准备好以下环境,二选一:

  • 公有云 SAP S/4HANA 系统与元数分析云。
  • On-Premise SAP S/4HANA 系统与私有化部署的元数分析系统。

我们要演示的 CDS Views 属于 S4 系统提供的 SD 模块分析的标准视图, 你可以在 ADT 中通过搜索 “vdm_sd” 并添加 VDM_SD_ANALYTICS 包,该包中包含 SAP 提供的销售分析标准内容的包。

我们选择 销售量和未清销售 这个查询视图进行分析,相关 CDS views:

  • 分析 Catalog:2CISDSLSANACUBE1 分析 - 销售量和未清销售
  • Query 2CISDSLSANACUBE1/2CCSDSLSANALYTICQ1 分析 - 销售量和未清销售
CDS Query
@Analytics.query: true
@AbapCatalog.sqlViewName: 'CSDSLSANALYTICQ1'
define view C_SalesAnalyticsQry_1
CDS Cube
@Analytics.dataCategory: #CUBE
@AbapCatalog.sqlViewName: 'ISDSLSANACUBE1'
define view I_SalesAnalyticsCube_1

CDS View 对应的 BW Query 可以在事务代码 RSRT 中查看 (格式为 2C<CUBE_SQL_VIEW>/2C<QUERY_SQL_VIEW>),其结果类似于 ‘Easy Query’。

SAP Query Monitor
SAP Query Monitor

SAP S/4 系统环境准备好后,我们接下来在元数分析云中为其创建语义模型进行增强。

配置分析环境

  1. 连接 S4HANA 系统为数据源。
  2. 创建语义模型作为模型增强的工作空间。

基于 Cube

选择目录 $INFOCUBE 创建语义模型,然后可以在源数据表找到名为 $2CISDSLSANACUBE1 的多维数据集。

基于 Query

选择目录 2CISDSLSANACUBE1 创建语义模型,然后可以在源数据表找到名为 2CISDSLSANACUBE1/2CCSDSLSANALYTICQ1 的查询数据集。

语义模型

对于 SAP S/4HANA 系统嵌入式分析的 CDS Views 模型场景,基础模型已经在 CDS Views 中构建好了,元数分析云中的语义模型可以在 CDS 模型基础上其进行增强, 包括维度语义的定义,度量格式的定义和计算度量的定义。

语义增强

在元数分析云系统中,数据可视化和指标管理功能中很多地方都需要对维度和度量的语义进行定义,包括日历维度格式,地理维度的性质,度量的格式化方式等。 在语义模型模型中对 CDS 模型进行语义增强,便于后续展示。

计算成员

在数据分析中,计算成员(Calculated Members)是一种强大的功能,它可以定义和创建基于现有数据的计算度量。这些计算成员可以用于各种分析和报告,提供更灵活和动态的数据分析能力。语义模型中的计算成员可以很好地替代 CDS 视图中的公式计算度量字段,以下是详细的介绍。

计算成员的优势

  1. 灵活性: 计算成员允许用户在语义模型层定义复杂的度量,而不需要修改底层 CDS 视图。这种灵活性使得用户可以根据需求快速调整和创建新的计算度量,而不必涉及到底层数据库或数据模型的变更。

  2. 动态性: 计算成员可以根据用户的交互和数据过滤动态计算结果。例如,可以根据不同的时间范围、地理区域或产品类别来计算特定的度量值,这在 CDS 视图中可能需要复杂的公式和条件才能实现。

  3. 易用性: 通过语义模型界面,用户可以使用简单的拖放操作和直观的公式编辑器来创建计算成员,而不需要深入了解 SQL 或 CDS 视图的语法。这大大降低了创建和管理计算度量的门槛,使得更多的业务用户能够参与数据分析。

  4. 维护简便: 计算成员集中在语义模型中管理,使得维护和更新更加便捷。用户可以在一个地方查看和修改所有的计算度量,而不需要在多个 CDS 视图中寻找和更新公式。

  5. 增强的计算能力: 语义模型支持更复杂的计算逻辑和函数,如 MDX (Multidimensional Expressions) 语句,可以实现一些 CDS 视图中难以实现的高级计算功能。这些功能包括复杂的时间序列分析、累计和移动平均计算等。

Calculated Members
Calculated Members in Semantic Model

替代 CDS 视图中的公式计算字段

CDS 视图中的公式计算度量字段通常用于定义业务关键指标(如销售额、利润率等)的计算逻辑。这些公式在视图定义时就固定下来,缺乏灵活性和动态调整能力。以下是如何使用语义模型中的计算成员替代这些功能的步骤:

  1. 创建计算成员: 在语义模型中,选择需要增强的维度或度量,使用计算成员功能定义新的度量。例如,可以定义一个计算成员来计算年度销售增长率:

    [Measures].[Annual Sales Growth] =
    ([Measures].[Sales Amount], [Time].[Year].CurrentMember) -
    ([Measures].[Sales Amount], [Time].[Year].CurrentMember.PrevMember)
  2. 应用动态计算: 根据分析需求,计算成员可以根据用户选择的不同维度和过滤条件动态计算。例如,基于不同的时间范围(如季度、月份)计算销售增长率,而无需修改底层数据模型。

  3. 整合现有度量: 计算成员可以基于现有的度量进行扩展和计算。例如,基于现有的销售额和成本度量,计算利润率:

    [Measures].[Profit Margin] =
    ([Measures].[Sales Amount] - [Measures].[Cost Amount]) /
    [Measures].[Sales Amount]
  4. 优化性能: 语义模型中的计算成员通常在分析层进行计算,可以利用内存计算技术和优化的查询引擎,提高计算性能,减少对数据库的负载。

AI 生成计算公式

随着 AI(人工智能)技术的应用越来越广泛,元数分析云副驾中的 计算公式命令 (/calculated) 利用 AI 技术,提供了一种智能化的计算公式生成功能,帮助用户更快速、更准确地创建计算度量和指标。 用户点击计算成员工具栏中的 AI 生成按钮,输入需要创建的计算公式的自然语言描述,便可以得到语义模型中的计算成员,大步改进了在 CDS View 中创建计算公式的速度。

数据预览

模型创建好后,可以在预览界面对模型数据进行预览.

Data Preview
Data Preview in Semantic Model

CDS 参数

对于有输入参数的 CDS View 如下:

CDS View with parameters
define view C_SalesAnalyticsQry_1 
with parameters
@Consumption.defaultValue: 'M'
P_ExchangeRateType : kurst,
P_DisplayCurrency : vdm_v_display_currency

as select from I_SalesAnalyticsCube_1(P_ExchangeRateType:$parameters.P_ExchangeRateType, P_DisplayCurrency: $parameters.P_DisplayCurrency) as SAC
{

在预览界面中 CDS 参数有默认值的会自动填入,没有默认值且必输的参数需要手动选择或输入。

模型查询语句

你还可以在查询界面使用 MDX 查询语句(或由 AI 辅助生成查询语句)进行更灵活的查询数据,还可以导出查询结果。

总结

通过本文介绍,您可以充分利用元数分析云的语义模型功能,对 CDS 视图进行增强和优化,实现更加灵活和高效的数据分析。 在下一篇文章中,我们将介绍如何使用增强过的 CDS 模型制作可视化仪表板,创建丰富多样的故事和计算度量功能。