# 数据集 (DataSet)

![DataSample Process][datasample-process]

数据集通过各种设置和信息来定义。以下是关于数据集及其相关字段和设置选项的详细说明。

- **名称 (name)**: 设置数据集的名称。该名称用于唯一标识数据集。

- **描述 (description)**: 设置有关数据集的描述。用于说明数据集的目的、内容或特征。

- **类型 (type)**: 设置数据集的类型。可以选择以下两个选项之一：

  - **手动收集 (Manual)**: 表示用户直接输入数据的数据集。
  - **自动收集 (Automatic)**: 表示通过自动化方法，如传感器，收集数据的数据集。

- **数据键集 (dataKeySet)**: 在数据键集主页面注册的项目应用于数据集。数据键集定义了数据集中使用的数据字段和属性。

- **分区键 (partitionKeys)**: 设置用于分割和组织数据的分区键。分区键逻辑上对数据进行分组和存储，并提高数据管理和检索的效率。通过使用分区键，可以快速过滤和查询数据。

- **计划 (schedule)**: 设置数据输入周期。设置周期后，将根据该周期执行数据输入作业。

- **时区 (timezone)**: 设置计划应用的基准时区。用于相关时间转换工作。

- **正常数据场景 (normalScenario)**: 当生成正常数据时，设置启动的场景。在需要数据后续处理的情况下使用。

- **异常数据场景 (outlierScenario)**: 当生成超出正常范围的数据时，设置启动的场景。在需要数据后续处理的情况下使用。

- **审查批准线 (reviewApprovalLine)**: 当生成正常数据时，设置数据审查过程中的批准线。仅在需要审查工作时适用。

- **异常数据批准线 (outlierApprovalLine)**: 当生成超出正常范围的数据时，设置数据处理过程中的批准线。

- **管理员角色 (supervisoryRole)**: 设置数据集的管理员角色。管理员负责审查收集的数据和异常数据。他们还拥有分配数据收集任务的权限。

- **输入负责角色 (entryRole)**: 设置拥有输入权限的角色。表示执行数据输入工作的角色。

- **分配者 (assignees)**: 设置负责处理数据收集任务的人员。

- **审查批准线 (reviewApprovalLine)**: 设置用于验证数据收集结果的批准线。

- **异常数据批准线 (outlierApprovalLine)**: 设置用于处理异常数据的批准线。

- **审查必要性 (requiresReview)**: 设置是否需要数据审查。设置后，管理员的审查和审查批准流程将自动开始。

- **输入画面类型 (entryType)**: 设置输入画面的类型。可以选择以下选项之一：

  - **Generated**: 自动使用已实现的画面。
  - **Board**: 使用 Board 画面。
  - **Page**: 移至已实现的页面。需要子 URL(suburl)。
  - **External URL**: 移至外部页面。需要完整的 URL。

- **输入画面 (entryView)**: 根据输入画面的类型设置值。如果选择 Board 画面类型，可以设置相应的值。

- **监控画面类型 (monitorType)**: 设置监控画面的类型。提供与输入画面类型相同的选项。

- **监控画面 (monitorView)**: 设置与监控画面类型相对应的值。

- **报告画面类型 (reportType)**: 设置报告画面的类型。提供部分与输入画面类型共享的选项。

  - **Jasper**: 根据 Jasper 服务器设置渲染 Jasper 报告页面并生成报告。
  - **Shiny**: 根据 Shiny 服务器设置渲染 Shiny 应用程序页面并生成报告。

- **报告画面 (reportView)**: 根据报告画面的类型设置值。对于 Jasper 或 Shiny，需要在相应服务器上有效的子 URL(suburl)。

- **报告模板 (reportTemplate)**: 上传报告画面所需的模板文件。

- **使用案例 (useCase)**: 指示数据集的用途或目的。包括常见的使用案例选项，如 "QA," "CCP," "SPC"。

- **数据项 (dataItems)**: 设置数据集的数据项。

- **数据输入计划 (schedule)**: 设置数据输入周期。

- **数据输入时区 (timezone)**: 设置与数据集输入相关的时区。

- **计划 ID (scheduleId)**: 设置数据集的计划 ID。

- **摘要周期 (summaryPeriod)**: 设置摘要周期会自动在计划器中注册摘要作业。目前不考虑工作负载，不提供每周和每月周期摘要。周期选项包括 hour(每小时)、shift(每班次)、workdate(每工作日)和 daily(每日)。

- **下一摘要执行日期 (summarySchedule)**: 根据设置的摘要周期通知下一摘要执行日期。根据设置的周期执行摘要作业。

- **创建日期 (createdAt)**: 显示数据集创建的日期和时间。

- **最后更新日期 (updatedAt)**: 显示数据集最后更新的日期和时间。

- **创建者 (creator)**: 显示创建数据集的用户。

- **更新者 (updater)**: 显示最后更新数据集的用户。

这些设置和信息有助于定义数据集并使用它，有助于清晰理解数据集的目的和用途。

## 分区键使用示例

**分区键使用示例 (Athena API):**

Athena 是 Amazon Web Services (AWS) 的查询服务之一，可以轻松查询和分析存储在 S3 中的数据。让我们看看如何使用分区键在 Athena 中快速搜索和过滤数据。

假设:

- 数据集存储每日订单数据。
- 分区键设置为 "日期 (Date)"。

**Athena 查询示例:**

以下是使用 Athena 搜索特定日期的订单数据的查询示例。

```sql
SELECT *
FROM "my_dataset"
WHERE "partition_key" = '2023-12-01';
```

此查询搜索 "my_dataset" 数据集中 "日期" 分区键为 '2023-12-01' 的所有订单数据。使用分区键可以在大型数据集中快速检索所需的数据。

[datasample-process]: ./images/datasample-process.png
