> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xpertai.cn/llms.txt
> Use this file to discover all available pages before exploring further.

# 如何分析 SAP BW 数据模型

SAP BW (SAP Business Warehouse) 是 SAP 公司开发的一种企业级数据仓库系统，旨在支持企业的数据分析和决策制定。它是一个集成的、企业级的解决方案，可以将来自不同系统的数据整合到一个单一的数据仓库中。 SAP BW 的数据模型采用了星型模型，数据存储在一个中央存储库中，可以对其进行高效的查询和分析。数据可以从多个来源收集，包括 SAP 应用程序和其他外部系统。SAP BW 还支持多维分析和数据挖掘功能，可以通过 OLAP (Online Analytical Processing) 技术进行高效的数据分析。

Xpert 分析云通过使用 XMLA (XML for Analysis) 协议，连接 SAP BW 系统进行语义模型增强，从而实现更强大的数据分析功能。 Xpert 分析云可以直接访问 SAP BW 系统中的数据立方体或查询，并且可以对 SAP BW 系统中的模型进行语义增强。在增强语义模型的过程中，用户可以创建新的度量和计算成员，修改维度和度量描述，从而扩展数据分析的功能。

在本教程中，我们将介绍如何使用 Xpert 分析云连接 SAP BW 系统并创建一个语义模型以进行数据分析。

## 数据源

参考文档 [SAP BW 数据源](../../../server/datasources/sap-bw/) 进行创建数据源。

## 语义模型

语义模型是 Xpert 分析云中的一个核心基础功能，它提供了多种功能来增强数据的分析能力，包括以下方面：

1. 查询实验室

查询实验室可以帮助用户快速创建和测试 MDX 查询语句。在查询实验室中用户可以借助 AI 智能助理通过自然语言生成查询语句进行数据查询。 还可以保存会话记录和导出查询数据结果。

2. 模型语义增强

语义模型提供了一种简单的方式来增强数据模型的语义。可以为 BW Cube 或 Query 新值计算度量、维度计算成员，修改标签描述、设置度量数字格式、为维度分配语义类型等一系列的增强能力。

3. 缓存

语义模型中可以对查询 BW 数据的缓存进行设置，可以开启缓存功能和设置缓存过期时间等，以提高用户查询效率。

详细参考文档 [为第三方多维模型创建语义增强](../../../models/mdx-modeling/semantic-enhancement-for-third-party-olap-cube)

### 创建语义模型

在语义模型管理页面点击新建，打开创建向导窗口，输入名称，选择已创建的 SAP BW 数据源，等待系统获取所有的服务目录（Catalog）后， 选择一个需要的服务目录后点击应用。

<img src="https://mintcdn.com/xpertai/0avAZsO6pri8DJS6/public/img/data-sources/bw-catalogs.png?fit=max&auto=format&n=0avAZsO6pri8DJS6&q=85&s=c79a8170b33eedf4bd2cf74ecf17e4b8" alt="SAP BW Cube 语义模型" width="1100" height="1338" data-path="public/img/data-sources/bw-catalogs.png" />

创建成功后用户便可以通过此模型空间来增强和分析 SAP BW 模型数据了。

### 查询实验室

MDX（Multidimensional Expressions）语言是一种用于 OLAP 数据源的查询语言，可以帮助用户快速高效地从多维数据中提取所需的信息。在查询实验室中用户可以使用 MDX 查询语言来对 SAP BW Cube 或 Query 中的数据进行分析。

通过将模型拖至**表结构**区域，用户可以查看模型的维度和度量结构信息，并将结构信息拖至编辑器中辅助进行 MDX 查询语句的编写。

<div className="flex justify-center">
  <figure class="">
    <video controls width="550" autoplay="true" loop="true" alt="SAP BW 查询实验室" poster="/img/models/semantic-model-query-lab.png">
      <source src="https://mintlify.s3.us-west-1.amazonaws.com/xpertai/img/models/semantic-model-query-lab-exec.webm" type="video/webm" />
    </video>

    <figcaption>SAP BW 查询实验室</figcaption>
  </figure>
</div>

更多通用功能请参考文档 [🧪查询实验室](../../../models/query-lab/).

### Cube 语义增强

为 SAP BW 的 Cube 或 Query 创建模型增强，增强可以是新值计算度量、维度计算成员，修改标签描述、设置度量数字格式、为维度分配语义类型等一系列的增强能力。

<img src="https://mintcdn.com/xpertai/0avAZsO6pri8DJS6/public/img/models/semantic-model-cube.png?fit=max&auto=format&n=0avAZsO6pri8DJS6&q=85&s=2382977b660590f05a3572cc3773a01b" alt="SAP BW Cube 语义增强" width="3024" height="1728" data-path="public/img/models/semantic-model-cube.png" />

### 新增计算成员

计算成员（Calculated Member）是通过对现有的维度和度量进行计算得到的新成员，它不是存储在 Cube 中的实际数据，而是在查询时动态计算出来的。计算成员可以用于对原始数据进行加工、整合和补充，以便更好地理解数据和做出决策。

为什么我们需要计算成员有以下原因：

1. 数据的复杂性：模型中的数据通常比较复杂，需要对原始数据进行一定的计算和处理，以便更好地理解数据和做出决策。
2. 数据的实时性：在某些情况下，需要根据实时的业务需求对数据进行计算和分析，而不是仅仅依靠预先定义的指标和度量。
3. 业务的灵活性：模型通常需要根据不同的业务需求和场景进行调整和定制，以便更好地支持业务决策和数据分析。

<img src="https://mintcdn.com/xpertai/0avAZsO6pri8DJS6/public/img/models/semantic-model-calculated-member.png?fit=max&auto=format&n=0avAZsO6pri8DJS6&q=85&s=df3bad6e06816dc569ef44d370f11349" alt="SAP BW Cube 计算成员" width="3024" height="1724" data-path="public/img/models/semantic-model-calculated-member.png" />

## 故事仪表板

Xpert 分析云的故事仪表板（Story Dashboard）是一种交互式数据可视化工具，可以帮助用户以图表、图形、表格等形式展示数据，并支持用户进行数据探索和交互式分析。 故事仪表板提供了丰富的数据可视化组件，包括条形图、折线图、饼图、地图等，用户可以通过简单的拖拽和放置操作，将不同的数据可视化组件放置到仪表板中，并进行配置和自定义。

故事仪表板提供了丰富的关联分析功能，包括输入控制器（Input Control）、过滤器栏（Filter Bar）和切片器（Slicer）等。

输入控件允许用户通过选择选项或者输入数值等方式来改变数据分析的结果。例如，用户可以使用输入控件来选择时间区间或者产品类型，以便更好地分析数据。输入控件的形式可以是下拉菜单、单选框、多选框等。

过滤器栏和切片器是用于对数据进行过滤和筛选的工具。它们都允许用户根据数据的不同维度来选择相应的数据，以便更好地分析数据。过滤器栏通常显示在仪表板的顶部或者左侧，可以同时过滤多个维度，而输入控制器则通常显示在具体的数据可视化组件旁边，可以针对单个维度进行过滤。在使用过滤器栏或者切片器时，用户可以选择一个或多个值，或者使用搜索功能来找到特定的值。

<div className="flex justify-center">
  <figure class="">
    <video controls width="550" autoplay="true" loop="true" alt="直连 SAP BW 模型的故事仪表板">
      <source src="https://mintlify.s3.us-west-1.amazonaws.com/xpertai/img/story/story-query-by-input-control.webm" type="video/webm" />
    </video>

    <figcaption>直连 SAP BW 模型的故事仪表板</figcaption>
  </figure>
</div>

### 自定义图形逻辑

Xpert 分析云的故事仪表板提供了自定义图形逻辑Javascript代码的功能，这意味着用户可以通过编写Javascript代码来实现更多图形展示需求的功能。

用户可以通过选择图形 **自定义** 类型来创建自己的图形逻辑脚本。

<img src="https://mintcdn.com/xpertai/CgLwIU0HLPNNsDe2/public/img/story/story-dashboard-custom-chart-code.png?fit=max&auto=format&n=CgLwIU0HLPNNsDe2&q=85&s=2c06c8843f8eecebbf8d19f0f2f80306" alt="Story 自定义图形逻辑" width="3024" height="1730" data-path="public/img/story/story-dashboard-custom-chart-code.png" />

自定义图形类型详见文档 [自定义图形](../../../widgets/analytical-card/custom/).

### 计算公式

在故事仪表板中也可以创建计算成员，不同于 [语义模型中的计算成员](#新增计算成员) 故事仪表板中的计算成员只在本故事中有效。在故事仪表板中可以创建多种类型的计算成员：

* **Calculated Formula**（计算公式）：使用 MDX 公式来计算度量的值，例如：计算百分比、增长率等。
* **Conditional Aggregation**（条件聚合）：根据条件对数据进行聚合计算，例如：对销售额进行按地区、时间、产品等维度的条件聚合计算。
* **Restricted Measure**（限制度量）：根据筛选条件限制度量的计算范围，例如：仅计算某个时间段内或某个产品的销售额。
* **Difference From**（与另一期比较）：计算当前期度量值与另一期度量值的差异，例如：计算本月销售额与上月销售额的差值或比率。

除了单独创建不同类型的计算成员外，用户可以使用已创建的计算度量再创建另一个计算度量这种嵌套方式以达到复杂逻辑的计算。

另外在创建计算成员时，用户可以使用 [参数](../../../stories/parameter/) 来控制计算公式的输入，并在故事仪表板中通过输入控件来动态改变参数的值，以达到动态计算的目的。

详情参考文档 [计算度量](../../../stories/calculations/).

## 总结

总结来看使用 Xpert 分析云直连 SAP BW 模型进行数据分析具有以下优势：

* 快速连接：通过使用 XMLA 协议连接 SAP BW，避免了数据集成和数据转换的过程，直接从 SAP BW 系统中获取数据，大大缩短了用户分析获取数据的时间。
* 灵活查询：使用 MDX 语言进行查询，可以进行灵活的跨维度分析、复杂计算和数据聚合，同时支持多维分析和关联分析等高级分析功能。
* 精细权限控制： Xpert 分析云支持对语义模型进行权限控制，可对不同用户或用户组进行不同程度的数据访问限制，确保数据的安全性和隐私性。
* 多样化展现： Xpert 分析云支持多种数据可视化展现方式，包括条形图、饼图、线图、表格等多种视图和图表类型，同时也可以自定义 JavaScript 代码来扩展和定制化数据可视化的功能和效果。
