# 管理数据产品中的语义模型

您可以在数据产品中创建和编辑语义模型，以定义供分析应用程序使用的数据结构、关系、度量和维度。

语义模型是在数据产品中使用可视化建模界面创建的。数据产品的语义模型可供任何拥有该数据访问权限的分析开发人员使用。当数据产品激活后，语义模型即可通过数据市场获取，这表明它已准备好用于生产用例。

## 先决条件

在创建语义模型之前，请确保：

* 您已创建数据产品，并且至少有一个可添加到其中的数据集。

  信息注释您可以在处理语义模型之前将数据集添加到数据产品中，也可以在开发语义模型的过程中添加数据集。

  请参阅 [创建数据产品](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/Creating-data-products.htm)。

* 您有权限编辑该数据产品。

  [数据产品角色和权限](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/data-products-roles-and-permissions.htm)

* 数据产品中的数据集包含您希望包含在语义模型中的表和字段。

## 向语义模型添加信息

若要开发数据产品中的语义模型：

1. 从启动器菜单 the 目录 icon 中，选择 并单击要在其中处理语义模型的数据产品。

2. 单击数据产品的 语义模型 选项卡以打开语义模型编辑器。

   ![语义模型编辑器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-editor.png)

语义模型编辑器打开后会显示一个可视化画布，您可以在其中定义关系、度量值和维度。

单击表头可显示数据及其质量的预览。

### 从数据集添加表

表是您的语义模型的基础。每个表都代表您的数据产品中某个数据集的数据。

默认情况下，语义模型编辑器会显示数据产品中已存在的表，但您可以随时根据需要添加更多表。

若要添加表格：

1. 在语义模型编辑器中，转到 表 选项卡并单击 添加数据。

   ![添加表](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-add-tables.png)

2. 在打开的目录窗口中，选择包含要添加的表的一个或多个数据集，然后单击确认。

一个或多个表将显示在画布上。重复此过程，将其他表添加到语义模型中。

### 定义关系

关系基于匹配字段连接表，从而支持跨数据进行关联查询。它们在画布上显示为连接各个表的连线。

若要创建关系，您可以：

* 使用“创建关系”按钮。

  1. 单击要从中创建关系的表的表头。或者，单击用于创建关系的特定字段。

  2. 在打开的右侧面板中，单击 关系 + 按钮。

     ![“创建关系”按钮](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-create-relationship-table.png)

  3. 使用下拉菜单，选择要关联的两个表的名称及其匹配字段的名称。

  4. 添加名称，并选择关系基数（关系类型）。修改关系类型是可选的。

     字段之间的关系类型可以包括：

     * **一对一**：第一个表中的一条记录与第二个表中的一条记录相匹配。
     * **一对多**：第一个表中的一条记录匹配第二个表中的多条记录。
     * **多对多**：第一个表中的多条记录可以匹配第二个表中的多条记录。
     * **多对一**：第一个表中的多条记录与第二个表中的一条记录相匹配。

     ![应用关系](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-create-relationship-table_2.png)

  5. 可选择添加描述。

  6. 单击应用。

* 使用拖放。

  1. 将鼠标指针悬停在某个字段上，然后单击并按住该字段侧边出现的其中一个节点。

  2. 将节点拖动到另一个表中的匹配字段，然后释放以创建关系。

     ![通过拖动字段创建关系](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-create-relationship-drag-and-drop.png)

* 审查并验证建议。

  Qlik 自动为以下内容建议关系：

  * 跨表具有相同或相似名称的字段。

    ![关系建议](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-relationship-suggestions.png)

  * 对于位于 Qlik Talend Data Integration 数据管道下游的数据产品，在您编辑 语义模型 时，将提供来自源管道的原始关系作为建议。

    这些建议可作为起点。它们并不总能反映管道中建模的所有内容，因此请检查它们并手动添加缺失的关系。 有关限制的详细信息，请参阅 [来自数据集成管道的关系建议限制](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/semantic-models-known-issues.htm#PipelineSuggestions)。

    ![数据集成管道下游数据产品中的关系建议](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-relationship-suggestions-data-pipeline.png)

  执行以下操作：

  1. 打开左侧面板的建议选项卡。

  2. 查看建议的关系。您可以：

     * 采纳建议。

     * 展开建议的推理以了解更多信息。例如，无论是来自字段名称匹配，还是在上游 Qlik Talend Data Integration 数据管道中定义的关系。

     * 忽略建议。

信息注释确保您连接的字段具有兼容的数据类型，并包含匹配的值，以便该关系在消费应用程序中正常工作。

### 创建维度

维度是分析应用中用于对数据进行分类和分组的字段。

若要创建维度：

1. 单击左侧面板的 维度 选项卡，然后单击 创建维度。

   ![创建维度](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-create-dimension.png)

2. 输入维度的名称，例如 产品名称。

3. 使用 字段 下拉列表，为维度选择参考字段，例如 `Product`。或者，点击 Fx 按钮以打开功能完备的表达式编辑器。有关编写表达式的详细信息，请参阅[编写表达式](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/managing-semantic-models.htm#Expressions)。

4. （可选）输入描述以记录维度的用途并添加标签。

5. （可选）在术语表术语下，单击关联术语表术语，将该维度关联到一个或多个术语表术语。

   1. 从列表中选择现有术语，或创建新术语以添加将关联到该维度的新术语。

   2. 选择术语与维度之间的关系：

      * 定义：该术语包含维度的定义。只能将一个术语设置为定义。

      * 相关：该术语与维度相关。可以将多个术语设置为相关术语。

   3. 完成后，点击选择。

   4. 根据需要单击添加更多以添加更多术语。

6. 单击应用。

   ![新建维度对话框](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-create-dimension_2.png)

该维度将添加到语义模型中，并在消费应用程序中显示为主维度。

### 创建度量

度量是计算指标，在使用语义模型的应用程序中显示为主条目。

若要创建度量：

1. 点击左侧面板的 度量 选项卡，然后点击 创建度量。

   ![创建度量](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-create-measure.png)

2. 输入度量值的名称，例如 总销售额。

3. 使用聚合和字段下拉列表，选择度量背后的表达式参数，例如 `Sum` 和 `Amount`。或者，点击 Fx 按钮以打开功能完备的表达式编辑器。有关编写表达式的详细信息，请参阅[编写表达式](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/DataProducts/managing-semantic-models.htm#Expressions)。

4. （可选）输入描述以记录该度量的用途并添加标签。

5. 为度量的数字格式选择一个选项：

   * 自动
   * 数字
   * Money
   * 日期
   * 持续时间
   * 度量表达式：

   信息注释自定义选项不可用。

6. （可选）在 词汇表术语 下，单击 关联词汇表术语，以将该度量关联到一个或多个词汇表术语。

   1. 从列表中选择现有术语，或创建新术语以添加将与该度量关联的新术语。

   2. 选择术语与度量之间的关系：

      * 定义：该术语包含度量的定义。只能将一个术语设置为定义。

      * 相关：该术语与度量相关。可以将多个术语设置为相关术语。

   3. 完成后，点击选择。

   4. 根据需要单击添加更多以添加更多术语。

7. 单击应用。

   ![新建度量对话框](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-create-measure_2.png)

此度量已添加到语义模型中。当应用程序使用语义模型时，该度量会显示为主度量，可以直接在可视化中使用。

提示注释为度量值使用清除、描述性的名称，以便分析开发人员可以轻松理解其用途。在适当时，在名称中包含聚合函数，例如“平均订单价值”或“总销售计数”。

### 编写表达式

表达式编辑器允许您使用 Qlik 分析语法编写自定义度量和维度表达式。您可以使用编辑器左侧面板中的字段和函数。

![语义模型编辑界面中的表达式编辑器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-exp-editor.png)

在表达式中使用字段名称的注意事项

引用关系中使用的字段时，您的表达式需要使用由该关系定义的新字段名称。例如，如果某个关系连接了两个名称不同的字段，则新字段名称将使用原始字段名称的组合。例如，Date 和 Order Date 字段之间的关系可能会生成新的字段名称 OpenDate-Date。

这些新字段名称显示在表达式编辑器的 字段 部分。您还可以通过在语义模型画布上单击某个字段来查找新的字段名称。新字段名称显示为 Qlik 应用程序中的字段名称。

![确认语义模型中基于关系的字段的预期字段名称](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/semantic-model-qlik-application-field-name.png)

## 编辑语义模型

以下编辑语义模型的操作可在数据产品激活之前或之后执行。

* 使用左侧面板中的表格选项卡添加表格。
* 选择表后，在右侧面板中创建、编辑或删除关系。
* 使用左侧面板的 维度 和 度量 选项卡添加、编辑或删除维度和度量。
* 更新表达式或描述。

对语义模型的更改将在消费应用程序下次重新加载时可用。如果应用程序使用带有通配符选择器的自动包含模式，新的字段、维度和度量会自动包含在内。

## 正在验证表达式

当您使用完整的表达式编辑器创建或编辑度量和维度时，系统会验证您的表达式，以确保它们使用正确的语法并引用有效字段。

如果表达式包含错误：

* 度量或维度标有警告指示器。
* 错误消息会说明问题所在，例如“未找到字段”或“语法无效”。
* 表达式在错误位置高亮显示。

若要修复验证错误：

1. 查看错误消息以了解问题。
2. 编辑表达式以更正此问题。
3. 验证函数名称和语法关注 Qlik 表达式语法规则。
4. 保存度量或维度以重新验证表达式。

信息注释存在验证错误的度量和维度可以保存，但在消费应用程序中可能无法正常工作。在使数据产品可用于生产用例之前，请解决所有验证错误。

## 激活数据产品

当数据产品中的语义模型准备好用于生产用例时，您可以将其激活。请参阅 [在数据市场将数据产品激活](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Marketplace/Consuming-in-data-marketplace.htm)。