---
order: 1
navTitle: 引入数据
---
# 为仪表板添加数据

数据即仪表板组件的取数来源。添加的数据可以是数据模型、临时数据加工或数据集，添加到数据中的模型即可用于可视化取数。

![类型](./images/2020-10-23-17-17-54.png)

- [引入数据模型](#add-model)：直接将全局模型表引入
- [新建数据加工](#creat-dataflow)：新建一个当前对象内部的数据加工
- [新建数据集](#creat-dataset)：新建一个当前对象内部的数据集

## 引入数据模型{#add-model}

仪表板所需模型已经在数据模块中准备好，可以将对应模型表添加到数据模型中。提供了两种添加方式：

- 在**数据栏**中点击**添加**按钮，在弹出框中通过搜索或直接在其所在目录下选中该模型，点击确定。
- 点击**数据按钮**>**引入数据模型**，在对话框中通过搜索或直接在其所在目录下选中该模型，点击确定。

![添加](./images/shuju.gif)

:::tip
在弹出的选择数据模型对话框中按住`ctrl`键可以多选，按住`shift`键可连续选择，这样可以一次引入多个模型表。
:::

**模型字段列表中的一些特殊字段**

模型表添加成功后，在左侧的数据模型面板会显示当前选中的数据模型下所有的字段，包括维度和度量，其中也包含了一些特殊的字段：

- 度量名称：维度字段，记录模型表中的所有维度字段，通常与**度量值**一起配合使用
- 字段名称：维度字段，记录模型表中的所有字段，通常结合[输入控件](../components/input/README.md)进行数据过滤
- 度量值：度量字段，记录模型表中的所有度量字段，通常与**度量名称**一起使用，返回的是对度量值的sum值。
- 总行数：度量字段，模型表中的数据总行数
- 经度/纬度：度量字段，若模型表中的地区字段设置了[地理角色](../../../data-gov/model/field-role.md)，则数据模型中会有经度、纬度2个字段

**快速打开引用模型**

添加的数据模型，在使用过程中如果需要查看数据或模型结构属性时，可以选中数据模型名称，使用鼠标右键方式选择**打开**或者**定位**查看数据模型信息，操作的区别在于：

- 打开：在仪表板内打开模型查看
- 定位：新开浏览器标签页，并在数据模块打开并选中引用的数据模型

::: tip
只有通过**添加数据模型**添加的数据模型能进行**打开**和**定位**。
:::

### 新建计算字段{#calc-field}

当表中已有的字段无法满足用户所需，需要根据已有的字段构造出的新的字段时，可以使用新增计算字段方式实现。新增计算字段的操作方式和数据模型上的一致，参考文档[新增计算字段](../../../data-process/transform/calc-field.md)。新增计算字段的方式有两种：

1. 点击**数据栏**>维度行旁边的**箭头**>**新增计算字段**，在编辑框中通过函数、参数等构造新的字段
2. 选中某一字段，右键选择**创建**>**计算字段**，此时编辑框中会出现选中的字段，可在该字段的基础上构造新字段

![计算字段](./images/xjjszd.gif)

### 创建分组字段{#calc-group-field}

如需对某一维度的数据按不同类型进行划分，可通过创建分组的方式，右键点击对应的维度字段，选择**创建**>**分组**，创建分组的操作方式和数据模型上的一致，参考文档[创建分组字段](../../../data-process/transform/calc-group-field.md)。

### 创建分段字段{#calc-section-field}

如需对某一度量的数据按不同范围进行划分，可通过创建分段的方式，右键点击对应的度量字段，选择**创建**>**分段**，创建分段的操作方式和数据模型上的一致，参考文档[创建分段字段](../../../data-process/transform/calc-section-field.md)。

### 设置字段属性{#field-properties}

**地理角色**

用于将地区相关的**维度字段**的值与一个经纬度值关联，从而在地图上显示对应的位置，因此地图控件的位置字段必须是设置了地理角色的数据字段。右键点击所需字段，比如国家、行政区划等，选择**地理角色**，若是中国的省市县数据，则设置为**中国行政区划**；若是世界各国数据，则设置为**国家地理信息**，参考文档[地理角色](../../../data-gov/model/field-role.md)。

**显示格式**

用于设置数据在控件中的显示格式，比如设置为显示整数、百分比等。右键点击字段，选择**显示格式**中进行设置，参考文档[显示格式](./data/displayformat.md)。

**聚合方式**

系统提供了部分常用的聚合方式，通过选择相应方式即可便捷对数据进行聚合，如计数、平均值、最大值、最小值等。右键点击**度量字段**>**聚合**，选择对应的聚合方式即可，当字段拖入控件中后，数据会以选择的聚合方式进行聚合。

**汇总依据**

系统提供了部分常用的汇总方式，用于在[表格控件](../components/table/README.md)中求合计值时对数据的汇总。通过选择相应方式即可对数据快速进行合计、最大值等计算。右键点击**度量字段**，选择**汇总依据**即可。

### 替换字段引用{#replace-field}

当模型发生调整，需要将某个字段的引用全部修改为新增字段时，可以使用替换字段的方式一键替换所有该字段的引用。比如右键点击【价格档次】，选择**替换字段**，在弹出框中选择【销售季节】，点击确定，控件中价格档次就会被替换为销售季节。

![替换](./images/tihuan.gif)

### 设置别名{#rename}

为数据模型重命名，右键点击模型，选择**设置别名**，在对话框中输入名称即可。当修改别名后，控件中的字段引用的模型表或字段名称会同步修改。

## 新建数据加工{#creat-dataflow}

当已有数据模型无法满足当前页面的分析需求，需要对其进行加工处理，而加工结果其它页面不会用到，只会在该分析内部使用时，可通过这里的**新建数据加工**的方式进行加工，这里新建的数据加工只会保存到当前页面内部，不会影响全局模型表。点击**数据源按钮**>**数据加工**，加工操作参考文档[新建数据加工](../../../data-process/create-dataflow.md)。

## 新建数据集{#creat-dataset}

数据集（data set）是对已有的模型表进行过滤、关联、分组、字段筛选后形成的一个子集，这个子集更符合当前仪表板的使用需要。数据集对数据的加工能力没有数据加工强，但易于操作，在[SuperPage](../../../app/superpage/README.md)中，数据集也可以用来进行数据提交。点击**数据按钮**>**新建数据集**，在对话框内进行新建，新建数据集需要以下几个步骤：

![数据集](./images/2020-10-23-18-10-31.png)

1. 设置数据集名称：输入一个合理且有意义的名称，不能为空
2. 引入数据模型：数据集是基于模型表的子集，使用下拉的方式引入数据模型，添加后模型数据会在右侧的[数据列表](#dataset-field)中展示。
3. [数据集属性设置](#dataset-properties)：为数据集进行过滤、添加分组或排序字段
4. 选择[数据集类型](#dataset-type)：设置数据集的类型，可选单主键、单行、自动识别，默认为自动识别，表示会根据当前表自动判断数据集类型
5. 保存：保存当前数据集，保存后的数据集用法和引入的数据模型用法一致，在数据模型下可以查看数据集中的字段，在控件的数据中即可引用该数据集

### 数据集属性设置{#dataset-properties}

- 读写类型：数据集的读写权限，分为**只读**、**只追加写**、**可读可写**，此属性只在[SuperPage](../../../app/superpage/README.md)中有效
- 设置过滤条件：对数据集中引入的数据模型数据进行过滤，可参考[过滤](#filter)
- 设置分组字段：即根据所选分组字段对数据进行分类汇总（分组），相当于sql语句中的group by，可基于分组后的结果设置筛选条件
- 设置排序：对数据集中的数据根据排序字段进行**升序**或**降序**排列，可参考[排序字段](#sort-fields)
- [字段管理](../../../data-gov/model/README.md#filed-management)：当引入的数据模型中已有的字段无法满足所需，需要根据已有的字段构造出的新的字段列或者对字段进行修改时，可以**新建字段**，数据量较大且有些字段不需要时，可通过**选择字段**勾选需要的字段，提高数据查询效率
- 设置变量：即设置参数，可通过定义变量对数据集模型进行过滤等，并传递给该模型，得到新的数据处理结果，可参考文档[设置动态加工参数](../../../data-process/setting-params.md)。设置变量后在模型设置中的参数中

### 数据字段管理{#dataset-field}

在右侧的数据列表中选中对应字段名称点击下拉按钮或者**右键**可对字段进行相关操作：

![](./images/2020-10-23-18-11-49.png)

- 重命名：对字段名称进行重命名
- 显示格式：设置字段中的数据展示的格式，以及在控件中数据的显示格式，显示格式类型可参考文档[显示格式](./data/displayformat.md)
- 删除字段：在数据集中删除该字段，不会删除数据模型中的字段，删除的字段可以通过[同步数据集结构](#sync-dataset)还原

### 排序字段{#sort-fields}

在左侧的排序属性中可添加一个或多个排序字段并指定排序方式。通常用于需要按照某种顺序显示数据的场景，比如企业的基本信息按照【成立日期】降序显示，最新成立的企业信息显示在最上面，并且数据集中指定排序字段的优先级高于[数据模型中指定排序字段](../../../data-gov/model/model-settings.md#sort-fields)。

![排序字段设置](./images/2022-06-07-15-46-23.png)

### 数据集类型{#dataset-type}

数据集类型表示一个数据集查询返回的结果集的类型，有**单行**、**单主键**和**普通数据集**三种，不同类型的数据集的表达式引用规则不同：

- **自动时别**：默认为**自动识别**，表示会根据当前表自动判断数据集类型
- **单行**：返回数据结果只有一行并不一定就是单行数据集，单行数据集是对结果集的一种确定性约束，不论数据行数如何变化，结果都只会有一行，比如按照模型的所有主键字段过滤，则就是单行结果集，如果对所有数据汇总那么也会是单行结果集，但如果使用某个过滤条件导致数据此时是只返回一行数据，但是随着来源数据的变化有可能返回不是一行，那么这不能称之为单行数据集。单行结果集是一种根据模型的主键或者加工的逻辑理论上推测出来的返回结果最多只有一行的结果集。
- **单主键**：指数据集只有一个字段作为逻辑主键，当为**单主键**类型时，需要设置**主键字段**
- **普通结果集**：即多行多主键

:::tip
**单行**和**单主键**是特殊情况，有时候比较复杂，无法自动识别，需要手动设置类型
:::

### 同步数据集结构{#sync-dataset}

当数据集的结构与引用模型表结构不一致时，数据集对话框中的**刷新**按钮会有黄色标记提示，点击**刷新**按钮可查看模型表与物理表的差异，并勾选需要修改的差异信息同步到数据集。

![](./images/2020-10-23-18-13-28.png)

## 替换已有模型{#replace-model}

若原有模型被删除或因为需求变更等原因不再使用时，可以重新选择其他模型进行替换。右键点击模型，选择**重新选择**，在弹出框中选择新的模型，新选择的模型会替换原有模型，控件中所使用的原模型字段也会替换为新模型中所对应的字段。

::: tip

1. 若某些数据字段只存在于原模型中，那么替换后引用这些数据字段的控件会提示相应字段不存在
2. 系统默认保留设置内容，若不勾选，原模型设置的过滤条件、计算字段等不会复用到新模型中
   :::

## 数据模型设置{#model-settings}

在仪表板内添加的数据模型会在左侧**数据**面板显示，选中对应的数据模型**右键**可对数据进行设置，如过滤条件、设置参数、权限等。

### 过滤条件{#filter}

当可视化分析内所有的控件具有相同的取数口径时，可以通过右键点击模型，选择**设置**>**过滤条件**，在模型表上设置全局过滤，过滤条件会影响所有使用该数据模型的控件，这样就无需为控件一一设置过滤。可以使用[全局参数](#params)或者根据[输入组件](../components/input/combobox.md)的值进行过滤。

比如想分析2010年2月河北省高档服饰的销售情况，可在过滤中进行设置，参考文档[过滤](./data/data-filter/README.md)。

![过滤](./images/2020-10-26-18-30-13.png)

### 参数{#params}

若仪表板使用的数据模型设置了参数，而分析时需要对参数进行更改时，可以在可视化分析页面右键点击该模型，选择**设置**>**参数**，对参数进行更改，并传递给该模型，得到新的数据处理结果，无需重新在模型中更改参数。

如原参数是北京市，这样模型中只有北京市的数据，若想分析河北省的数据，可将参数设置为河北省，参考文档[设置动态加工参数](../../../data-process/setting-params.md)

![参数](./images/2020-10-26-18-34-13.png)

::: tip
只有设置了参数的SQL模型才能在分析内部更改参数。
:::

### 权限{#permission}

通过右键点击模型名称，选择**设置**>**权限**，可以为不同的\[用户]、用户组设置对该模型的操作权限。

- **继承页面的权限设置**：默认勾选，表示当前登录用户对该仪表板拥有的权限会继承到该模型上
- **限制读权限**：限制该模型的读取权限
  - 禁止：禁止该模型的读取权限
  - 仅允许指定的用户：通过设置表达式，仅允许匹配的用户拥有该模型的读权限
  - 仅允许指定的用户组：通过设置表达式，仅允许匹配的用户组拥有该模型的读权限
- **限制导出权限**：限制该模型的导出权限

::: tip

1. 拥有对该可视化分析页面编辑权限的用户才可设置模型权限
2. 内部的权限是额外添加的权限，在**权限模块**的基础上
   :::

### 高级{#more}

通过右键点击模型，选择**设置**>**高级**，可以设置高级选项

![高级](./images/2020-10-23-18-14-53.png)

- **每页行数**：设置分页数，设置的分页会自动作用到影响的组件上，默认是100行
- **最大查询行数**：限制一次查询请求最大的查询数据量，防止数据被非法导出，默认是10000行
- **立即刷新**：系统默认勾选此项，勾选后，当模型表的数据发生更新时，页面中引用了该模型表的内容会自动刷新数据，同时驱动相关的可视化组件刷新。不勾选时，需要通过“刷新”交互主动刷新
- **初始时不查询**：默认不勾选，勾选后，页面不会自动查询该模型的数据，需用户使用“刷新数据”交互查询数据
- **按需查询字段**：默认的系统会一次性查询所有被引用的字段数据。当字段很多且有一些字段一开始并不显示，可以勾选“按需查询字段”，此时系统只查询当前需要显示出来的字段
- **最后修改人字段**：系统会在每次提交数据时将最后修改人修改为当前用户
- **最后修改时间字段**：系统会在每次提交数据时将最后修改时间修改为当前时间
- **禁用字段高亮**：搜索时字段数据中匹配的字符串默认会高亮显示，勾选后，禁用高亮
- **全文检索**：用于全文检索的模型，通常都是外部模型，而且配置了es存储，如果勾选此选项，那么对此模型的查询都会交给es处理
- **数据集类型**：即数据集上的设置的类型，当此处修改了数据集类型后，数据集对话框中也会同步修改

## 其他操作{#other-settings}

### 刷新模型{#refresh-model}

制作可视化分析的过程中，若所使用的模型表发生了修改，且没有在高级中勾选**立即刷新**时，可以通过右键点击模型，选择**刷新**来刷新模型、同步修改。

### 克隆模型{#clone-model}

克隆模型会复用原模型的所有操作，包括新建的计算字段、过滤条件、字段显示方式等，右键点击模型，选择**克隆**即可克隆该模型，克隆模型的命名规则是在原模型名字的后面加数字，数字从1开始依次累加，比如**销售明细表**第一次克隆产生的新表为**销售明细表1**，第二次克隆产生的新表为**销售明细表2**。

### 删除模型{#delete-model}

右键点击模型，选择**删除**，如果该模型没有被使用到，则会直接删除。如果有控件引用了该模型，则会弹出提示框删除模型后使用该模型数据的控件都会失效，提示使用该模型的控件。

![删除](./images/2020-10-23-18-16-22.png)
