

# 使用 AWS Glue Studio 评估数据质量
<a name="data-quality-gs-studio"></a>

 AWS Glue 数据质量可根据您定义的规则评估和监控您的数据质量。这样可以轻松识别需要操作的数据。在 AWS Glue Studio 中，您可以向可视化作业中添加数据质量节点，以便为数据目录中的表创建数据质量规则。然后，您可以监控和评估数据集随着时间的推移而发生的变化。有关如何在 AWS Glue 中使用 AWS Glue Studio Data Quality 的概述，请观看以下视频。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/DUd5s_CFtBM/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/DUd5s_CFtBM)


 以下是有关如何操作 AWS Glue 数据质量的总体步骤：

1. **Create data quality rules**（创建数据质量规则）— 通过选择您配置的内置规则集，使用 DQDL 生成器构建一组数据质量规则。

1.  **Configure a data quality job**（配置数据质量作业）— 根据数据质量结果和输出选项定义操作。

1.  **保存并运行数据质量作业** — 创建和运行作业。保存作业将保存您为该作业创建的规则集。

1.  **Monitor and review the data quality results**（监控和查看数据质量结果）— 在作业运行完成后查看数据质量结果。（可选）将作业安排在未来的某个日期运行。

## 优势
<a name="gs-data-quality-benefits"></a>

 数据分析师、数据工程师和数据科学家可以使用 AWS Glue Studio 中的评估数据质量节点来分析、配置、监控和提高可视化作业编辑器中的数据质量。使用数据质量节点的好处包括：
+  **您可以检测数据质量问题** — 您可以通过创建一些规则来检查数据集特征来查看是否存在问题。
+  **轻松上手** — 您可以从预先构建的规则和操作开始。
+  **紧密集成** — 您可以使用 AWS Glue Studio 中的数据质量节点，因为 AWS Glue Data Quality 是基于 AWS Glue Data Quality 运行的。

# 评估 AWS Glue Studio 中 ETL 作业的数据质量
<a name="tutorial-data-quality"></a>

在本教程中，您将开始使用 AWS Glue Studio 中的 AWS Glue 数据质量。您将了解如何执行以下操作：
+  使用数据质量定义语言（DQDL）规则构建器创建规则集。
+  指定数据质量操作、要输出的数据以及数据质量结果的输出位置。
+  查看数据质量结果。

 要通过示例进行练习，请查看博客文章[https://aws.amazon.com/blogs/big-data/getting-started-with-aws-glue-data-quality-for-etl-pipelines/](https://aws.amazon.com/blogs/big-data/getting-started-with-aws-glue-data-quality-for-etl-pipelines/)。

## 步骤 1：将“评估数据质量”转换节点添加到可视化作业
<a name="tutorial-data-quality-step1"></a>

在此步骤中，将“评估数据质量”节点添加到可视作业编辑器中。

**添加数据质量节点**

1.  在 AWS Glue Studio 控制台中，从**创建作业**部分选择**源和目标可视化**，然后选择**创建**。

1.  选择要应用数据质量转换的节点。通常，这将是转换节点或数据来源。

1.  选择“\$1”图标打开左侧的资源面板。然后在搜索栏中搜索**评估数据质量**，然后从搜索结果中选择**评估数据质量**。

1.  可视化作业编辑器将显示来自所选节点的**评估数据质量**转换节点分支。在控制台的右侧，**Transform**（转换）选项卡自动打开。如果您需要更改父节点，请选择**节点属性**选项卡，然后从下拉菜单中选择父节点。

    当您选择新的父节点时，将在父节点和 **Evaluate Data Quality**（评估数据质量）节点之间建立新的连接。移除所有不需要的父节点。只能将一个父节点连接到一个 **Evaluate Data Quality**（评估数据质量）节点。

1.  评估数据质量转换支持多个父数据集，因此您可以跨多个数据集验证数据质量规则。支持多个数据集的规则包括 ReferentialIntegrity、DatasetMatch、SchemaMatch、RowCountMatch 和 AggregateMatch。

   向“评估数据质量”转换添加多个输入时，需要选择“主要”输入。您的主要输入是要验证数据质量的数据集。所有其他节点或输入都被视为引用。

   您可以使用“评估数据质量”转换来标识未通过数据质量检查的特定记录。我们建议您选择主数据集，因为标记不良记录的新列会添加到主数据集中。

1.  您可以为输入数据来源指定别名。在使用 ReferentialIntegrity 规则时，别名提供了另一种引用输入源的方式。由于只能将一个数据来源指定为主要源，因此您添加的每个额外数据来源都需要一个别名。

   在以下示例中，ReferentialIntegrity 规则通过别名指定输入数据来源，并与主数据来源进行一对一比较。

   ```
   Rules = [
   	ReferentialIntegrity “Aliasname.name” = 1
   ]
   ```

## 步骤 2：使用 DQDL 创建规则
<a name="tutorial-data-quality-step2"></a>

在本步骤中，您将使用 DQDL 来创建规则。在本教程中，您使用**完整性**规则类型创建单个规则。此规则类型检查列中完整（非空）值与给定表达式的百分比。有关使用 DQDL 的更多信息，请参阅 [DQDL](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html)。

1.  在**转换**选项卡中，选择**插入**按钮添加**规则类型**。这会将规则类型添加到规则编辑器中，您可以在其中输入规则的参数。
**注意**  
 编辑规则时，请确保规则在方括号内，并确保规则用逗号分隔。例如，完整的规则表达式将如下所示：  

   ```
   Rules= [
       Completeness "year">0.8, Completeness "month">0.8
   ]
   ```
 此示例为名为“年”和“月”的列指定了完整性参数。为了让规则通过，这些列的“完成”值必须大于 80%，或者每个相应列的实例中的数据必须超过 80%。

    在此示例中，搜索并插入 **Completeness**（完整性）规则类型。这会将规则类型添加到规则编辑器中。此规则类型具有以下语法：`Completeness <COL_NAME> <EXPRESSION>`。

   大多数规则类型都要求您提供表达式作为参数才能创建布尔响应。有关支持的 DQDL 表达式的更多信息，请参阅 [DQDL expressions](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html#dqdl-syntax)。接下来，您将添加列名。

1.  在 DQDL 规则生成器中，选择**架构**选项卡。使用搜索栏在输入架构中查找列名。输入架构显示列名和数据类型。

1.  在规则编辑器中，单击规则类型的右侧，在要插入列的位置插入光标。或者，您也可以在规则中输入列的名称。

    例如，在输入架构列表的列列表中，选择该列旁边的**插入**按钮（在本示例中为**年份**）。这会将该列添加到规则中。

1.  然后，在规则编辑器中添加一个表达式来评估规则。由于**完整性**规则类型会根据给定表达式检查列中完整（非空）值的百分比，因此请输入一个表达式（例如 `> 0.8`）。该规则检查该列的完整值（非空值）是否大于 80%。

## 步骤 3：配置数据质量输出
<a name="tutorial-data-quality-step3"></a>

 创建数据质量规则后，您可以选择其他选项来指定数据质量节点输出：

1.  在 **Data quality transform output**（数据质量转换输出）中，从以下选项中选择：
   +  **原始数据** — 选择输出原始输入数据。当您选择此选项时，作业中会添加一个新的子节点“rowLevelOutcomes”。该架构与作为输入传递给转换的主数据集的架构相匹配。如果您只想在出现质量问题时传递数据并使作业失败，则此选项非常有用。

     另一个用例是您想要检测未通过数据质量检查的不良记录。要检测不良记录，请选择**添加新列以指示数据质量错误**选项。此操作将在“rowLevelOutcomes”转换的架构中添加四个新列。
     +  **DataQualityRulesPass**（字符串数组）— 提供一组通过数据质量检查的规则。
     +  **DataQualityRulesFail**（字符串数组）— 提供一组未通过数据质量检查的规则。
     +  **DataQualityRulesSkip**（字符串数组）— 提供已跳过的规则数组。以下规则无法识别错误记录，因为它们是在数据集级别应用的。
       +  AggregateMatch 
       +  ColumnCount 
       +  ColumnExists 
       +  ColumnNamesMatchPattern 
       +  CustomSql 
       +  RowCount 
       +  RowCountMatch 
       +  StandardDeviation 
       +  平均值 
       +  ColumnCorrelation 
     +  **DataQualityEvaluationResult** — 在行级别提供“通过”或“失败”状态。请注意：您的总体结果可能为“失败”，但某项记录可能会通过。例如，RowCount 规则可能已失败，但所有其他规则可能都已成功。在这种情况下，此字段状态为“已通过”。

1.  **数据质量结果** — 选择输出配置的规则及其通过或失败状态。如果要将结果写入 Amazon S3 或其他数据库，此选项非常有用。

1. **数据质量输出设置**（可选）— 选择**数据质量输出设置**以显示**数据质量结果位置**字段。然后，选择**浏览**搜索要设置为数据质量输出目标的 Amazon S3 位置。

## 步骤 4：配置数据质量操作
<a name="tutorial-data-quality-step4"></a>

 您可以使用操作将指标发布到 CloudWatch 或根据特定条件停止作业。只有在创建规则后，操作才可用。当您选择此选项时，同样的指标也会发布到 Amazon EventBridge。您可以使用这些选项来[创建通知警报](https://docs.aws.amazon.com/glue/latest/dg/data-quality-alerts.html)。
+  **规则集失败时** — 您可以选择在作业运行时，如果规则集失败该怎么做。如果您希望在数据质量失败时作业失败，请通过选择以下选项之一来选择作业何时失败。默认情况下，此操作处于未选中状态，即使数据质量规则失败，作业也将完成运行。
  +  **无** — 如果选择**无**（默认值），则作业不会失败，即使规则集失败，作业仍会继续运行。
  +  **将数据加载到目标后作业失败** — 作业失败且未保存任何数据。要保存结果，请选择用于保存数据质量结果的 Amazon S3 位置。
  +  **在不加载到目标数据的情况下作业失败** — 当发生数据质量错误时，此选项会立即使作业失败。它不加载任何数据目标，包括数据质量转换的结果。

## 步骤 5：查看数据质量结果
<a name="tutorial-data-quality-step5"></a>

 运行作业后，选择**数据质量**选项卡查看数据质量结果。

1.  对于每个运行作业，查看数据质量结果。每个节点显示数据质量状态和状态详细信息。选择节点可查看所有规则和每条规则的状态。

1.  选择**下载结果**可下载包含有关作业运行和数据质量结果信息的 CSV 文件。

1.  如果您运行了多个带有数据质量结果的作业，则可以按日期和时间范围筛选结果。选择*按日期和时间范围筛选*以展开筛选窗口。

1.  您可以选择 Relative range（相对范围）或者 Absolute range（绝对范围）。对于绝对范围，请使用日历选择日期并输入开始时间和结束时间的值。完成后，选择**应用**。

## 自动数据质量
<a name="automatic-data-quality"></a>

 当您创建以 Amazon S3 为目标的 AWS Glue ETL 作业时，AWS Glue ETL 会自动启用一条数据质量规则，该规则检查正在加载的数据是否至少有一列。此规则旨在确保加载的数据不为空或损坏。但是，如果此规则失败，作业并不会失败；相反，您会注意到数据质量分数下降。此外，默认情况下启用异常检测，用于监控数据中的列数。如果列数有任何变化或异常，AWS Glue ETL 将通知您这些异常。此功能有助于您识别数据的潜在问题并采取适当的措施。要查看数据质量规则及其配置，您可以单击 AWS Glue ETL 作业中的 Amazon S3 目标。将显示规则的配置，如提供的屏幕截图所示。

![\[屏幕截图显示可供选择的自动数据质量选项。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/automatic-data-quality.png)


 您可以通过选择**编辑数据质量配置**来添加其他数据质量规则。

## 聚合指标
<a name="data-quality-aggregated-metrics"></a>

您可能需要聚合指标，例如在规则级别或规则集级别通过、未通过、跳过的记录条数，来构建控制面板。要获取每条规则的聚合指标和规则指标，首先要向 `EvaluateDataQuality` 函数添加 `publishAggregatedMetrics` 选项以启用聚合指标。

可能的 `additional_options` `publishAggregatedMetrics` 选项包括 `ENABLED` 和 `DISABLED`。例如：

```
EvaluateDataQualityMultiframe = EvaluateDataQuality().process_rows(
    frame=medicare_dyf,
    ruleset=EvaluateDataQuality_ruleset,
    publishing_options={
        "dataQualityEvaluationContext": "EvaluateDataQualityMultiframe",
        "enableDataQualityCloudWatchMetrics": False,
        "enableDataQualityResultsPublishing": False,
    },
    additional_options={"publishAggregatedMetrics.status": "ENABLED"},
)
```

若未指定，`publishAggregatedMetrics.status` 默认为 `DISABLED`，现在将计算规则指标和聚合指标。AWS Glue 交互式会话和 Glue ETL 作业目前支持此功能。Glue Catalog Data Quality API 中不支持此功能。

### 检索聚合指标结果
<a name="data-quality-aggregated-metrics-results"></a>

当 `additionalOptions` `"publishAggregatedMetrics.status": "ENABLED"` 时，可以在两个地方得到结果：

1. 提供 `resultId` 时通过 `GetDataQualityResult()` 返回 `AggregatedMetrics` 和 `RuleMetrics`，其中 `AggregatedMetrics` 和 `RuleMetrics` 包括：

   **聚合指标：**
   + 处理的总行数
   + 通过的总行数
   + 未通过的总行数
   + 处理的总规则数
   + 通过的总规则数
   + 未通过的总规则数  
![\[屏幕截图显示的是 AWS Glue 数据质量评估的聚合指标和规则指标结构。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data-quality-aggregated-metrics.png)

   此外，在规则级别还提供了以下指标：

   **规则指标：**
   + 通过的行数
   + 未通过的行数
   + 跳过的行数
   + 处理的总行数

1. 返回 `AggregatedMetrics` 作为附加数据框，并扩充 `RuleOutcomes` 数据框进行以纳入 `RuleMetrics`。

### 实施示例
<a name="data-quality-aggregated-metrics-example"></a>

以下示例说明如何在 Scala 中实现聚合指标：

```
// Script generated for node Evaluate Data Quality
val EvaluateDataQuality_node1741974822533_ruleset = """
  # Example rules: Completeness "colA" between 0.4 and 0.8, ColumnCount > 10
  Rules = [
      IsUnique "customer_identifier",
      RowCount > 10,
      Completeness "customer_identifier" > 0.5
  ]
"""

val EvaluateDataQuality_node1741974822533 = EvaluateDataQuality.processRows(frame=ChangeSchema_node1742850392012, ruleset=EvaluateDataQuality_node1741974822533_ruleset, publishingOptions=JsonOptions("""{"dataQualityEvaluationContext": "EvaluateDataQuality_node1741974822533", "enableDataQualityCloudWatchMetrics": "true", "enableDataQualityResultsPublishing": "true"}"""), additionalOptions=JsonOptions("""{"compositeRuleEvaluation.method":"ROW","observations.scope":"ALL","performanceTuning.caching":"CACHE_NOTHING", "publishAggregatedMetrics.status": "ENABLED"}"""))

println("--------------------------------ROW LEVEL OUTCOMES--------------------------------")
val rowLevelOutcomes_node = EvaluateDataQuality_node1741974822533("rowLevelOutcomes")

rowLevelOutcomes_node.show(10)

 println("--------------------------------RULE LEVEL OUTCOMES--------------------------------")

val ruleOutcomes_node = EvaluateDataQuality_node1741974822533("ruleOutcomes")

ruleOutcomes_node.show()

 println("--------------------------------AGGREGATED METRICS--------------------------------")

val aggregatedMetrics_node = EvaluateDataQuality_node1741974822533("aggregatedMetrics")

aggregatedMetrics_node.show()
```

### 结果示例
<a name="data-quality-aggregated-metrics-sample-results"></a>

结果按如下方式返回：

```
{
    "Rule": "IsUnique \"customer_identifier\"",
    "Outcome": "Passed",
    "FailureReason": null,
    "EvaluatedMetrics": {
        "Column.customer_identifier.Uniqueness": 1
    },
    "EvaluatedRule": "IsUnique \"customer_identifier\"",
    "PassedCount": 10,
    "FailedCount": 0,
    "SkippedCount": 0,
    "TotalCount": 10
}
{
    "Rule": "RowCount > 10",
    "Outcome": "Failed",
    "FailureReason": "Value: 10 does not meet the constraint requirement!",
    "EvaluatedMetrics": {
        "Dataset.*.RowCount": 10
    },
    "EvaluatedRule": "RowCount > 10",
    "PassedCount": 0,
    "FailedCount": 0,
    "SkippedCount": 10,
    "TotalCount": 10
}
{
    "Rule": "Completeness \"customer_identifier\" > 0.5",
    "Outcome": "Passed",
    "FailureReason": null,
    "EvaluatedMetrics": {
        "Column.customer_identifier.Completeness": 1
    },
    "EvaluatedRule": "Completeness \"customer_identifier\" > 0.5",
    "PassedCount": 10,
    "FailedCount": 0,
    "SkippedCount": 0,
    "TotalCount": 10
}
```

聚合指标如下所示：

```
{ "TotalRowsProcessed": 10, "PassedRows": 10, "FailedRows": 0, "TotalRulesProcessed": 3, "RulesPassed": 2, "RulesFailed": 1 }
```

# 数据质量规则生成器
<a name="data-quality-rule-builder"></a>

使用数据质量定义语言（DQDL）规则生成器，您可以创建数据质量规则来评估数据。首先选择规则类型，然后在规则编辑器中指定参数。在您创建规则时，规则编辑器还会向您显示任何错误和警告。

 [DQDL 指南](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html)提供了有关如何使用 DQDL 语法、内置规则类型和示例构造规则的综合性文档。

## Evaluate Data Quality（评估数据质量）节点
<a name="gs-data-quality-transform-expand-view"></a>

 使用**评估数据质量**转换节点和 DQDL 规则生成器时，可以扩展工作空间。
+  要展开**转换**选项卡以填满整个屏幕，请选择节点详细信息面板右上角的展开图标。
+  要展开 DQDL 规则编辑器，请选择 **<<** 图标展开规则编辑器并折叠**规则类型**和**架构**选项卡。  
![\[屏幕截图显示了带有评估数据质量节点的作业图。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data_quality_example.png)

## 组件
<a name="gs-data-quality-rule-builder-components"></a>

 AWS Glue Studio 内置了 26 种规则类型。每种规则类型都有一个描述以及若干个用法示例。

### 数据质量规则类型
<a name="gs-data-quality-rule-types"></a>

 AWS Glue Studio 提供了一些内置规则类型，以便于创建规则。有关规则类型的更多信息，请参阅 [DQDL 规则类型参考](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html#dqdl-rule-types)。

### 架构
<a name="gs-data-quality-schema"></a>

 **Schema**（架构）选项卡显示来自父节点的列名和数据类型。显示来自多个节点的架构。您可以查看输入架构、按列名搜索并将列插入规则编辑器。

![\[屏幕截图显示了规则编辑器，其中包含使用完整性规则类型的完整规则。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data_quality_schema.png)


### 规则编辑器
<a name="gs-dataquality-rule-editor"></a>

 规则编辑器是一个文本编辑器，您可以在其中编写和编辑规则。如果您从 DQDL 规则生成器中选择规则类型，则该规则类型将添加到规则编辑器中。然后，您可以根据需要通过修改文本来指定参数、添加规则和编辑规则。AWS Glue Studio 验证规则编辑器中的规则并显示错误和警告（如果存在）。

 **错误和警告** 

 如果规则不遵循 DQDL 规则语法，则规则编辑器将显示几个可视指示符指示存在错误：
+  规则编辑器在出现错误的行上显示错误图标和红色。
+  规则编辑器在红色错误图标旁边显示错误数。
+  当您选择有错误的行时，错误描述和位置（行和列）将显示在规则编辑器的底部。

![\[屏幕截图显示了 DQDL 规则编辑器，第 1 行和规则编辑器底部有错误指示器，其中包含错误数量。下面是错误的描述。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data_quality_rule_editor_error.png)


## 
<a name="gs-data-quality-settings"></a>

 **数据质量操作** 

 默认情况下，此操作处于未选中状态，即使数据质量规则失败，作业也将完成运行。

 在以下操作之间进行选择。您可以使用操作将结果发布到 CloudWatch 或根据特定条件停止作业。只有在创建规则后，操作才可用。
+  **将结果发布到 CloudWatch** — 当您运行作业时，将结果添加到 CloudWatch。
+  **数据质量失败时作业失败** — 如果数据质量规则失败，作业也将因此失败。

 **数据质量转换输出** 
+  **原始数据** — 选择输出原始输入数据。如果您想在检测到质量问题时停止作业，则此选项非常理想。
+  **数据质量指标** — 选择输出配置的规则及其通过或失败状态。如果您想执行自定义操作，此选项很有用。

 **数据质量输出设置** 

 通过将 Amazon S3 位置指定为数据质量输出目标来设置数据质量结果位置。

# 在 AWS Glue ETL 作业中配置异常检测
<a name="data-quality-configuring-anomaly-detection-etl-jobs"></a>

 要在 AWS Glue Studio 中开始使用异常检测，请打开 AWS Glue Studio 作业，然后单击**评估数据质量转换**。

 启用此功能后，AWS Glue 数据质量自动监测功能将随着时间推移分析您的数据，从而检测异常。此功能提供了有关您数据的宝贵数据统计信息和观测值，让您能够对任何已识别的异常采取行动。

 查看[异常检测](data-quality-anomaly-detection.md)文档，了解此功能的内部工作原理。

## 启用异常检测
<a name="data-quality-enabling-anomaly-detection"></a>

**在 AWS Glue Studio 中启用异常检测：**

1.  在作业中选择**数据质量**节点，然后选择**异常检测**选项卡。切换以打开**启用异常检测**。  
![\[屏幕截图显示了开启“启用异常检测”的开关。可以开启或关闭此功能。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data-quality-enable-anomaly-detection.png)

1.  通过选择**添加分析器**来定义要监测异常情况的数据。有两个字段可以进行填充：“统计信息”和“数据”。
   +  **统计信息**是指有关数据形状和其他属性的信息。您可以一次选择一个或多个统计信息，也可以选择**所有统计信息**。统计信息包括：Completeness、Uniqueness、Mean、Sum、StandardDeviation、Entropy、DistinctValuesCount、UniqueValueRatio 等。有关更多详细信息，请参阅[分析器](dqdl.md#dqdl-analyzers)文档。
   +  **数据**是指数据集中的列。您可以选择所有列或单个列。  
![\[屏幕截图显示了“统计信息”和“数据”字段。您可以选择要将哪些统计信息应用于您的数据集以及应用于哪些列。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data-quality-add-analyzer.png)

1.  选择**添加异常检测范围**，以保存您的更改。添加分析器后，可在**异常检测范围**部分中看到这些分析器。

    您也可以使用**操作**菜单编辑分析器，或者选择**规则集编辑器**选项卡，直接在规则集编辑器记事本中编辑分析器。您将在自己创建的所有规则下方看到您保存的分析器。

   ```
   Rules = [
   
   ]
   
   Analyzers = [
       Completeness “id”
   ]
   ```

 配置了经更新的规则集和分析器后，AWS Glue 数据质量自动监测功能就会持续监控传入的数据流。根据您的设置，此功能可以通过警报或作业停止发出潜在的异常信号。这种主动监控有助于确保整个数据管道的数据质量和完整性。

 在下一节中，您将了解如何有效地监控由系统识别的异常。您还将学习如何查看和分析 AWS Glue 数据质量自动监测功能收集的数据统计信息。此外，您还将了解如何向支持异常检测功能的机器学习模型提供反馈。此反馈循环对于提高模型的准确性，以及确保模型能够有效地检测符合您特定业务需求和数据模式的异常至关重要。

# 查看数据质量分数和异常
<a name="data-quality-viewing-scores-and-anomalies"></a>

 在本节中，我们将探讨数据质量控制面板及其提供的各项功能。

## 将高级数据质量指标和趋势进行可视化并充分了解
<a name="data-quality-visualize-metrics-and-trends"></a>

 作业成功完成后，选择**数据质量**选项卡，查看数据质量分数和异常。

![\[屏幕截图显示了选中“数据质量”选项卡后的分数和指标。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data-quality-visualize-data-quality-metrics.png)


 “数据质量”选项卡中的以下组件提供了有用的信息。

1.  选择**数据质量**选项卡，查看数据质量指标。

1.  选择一个具体的作业运行 ID，查看数据质量分数。

1.  此窗格显示了三条重要信息。您可以选择各条信息，导航到特定的表，从而查看异常、数据统计信息或规则。
   +  配置规则时的数据质量分数。
   +  规则和分析器收集的统计信息数量。
   +  检测到的异常总数。

1.  此趋势图显示了数据质量随时间的变化趋势。将鼠标悬停在趋势线上，就可以转到数据质量分数下降的具体时间。

1.  随时间变化的异常趋势将显示随时间变化检测到的异常数量。

1.  选项卡：
   +  “规则”选项卡是默认选项卡，显示了所有规则和状态的列表。对于动态规则，“已评估规则”非常有用，可以查看规则被评估的实际值。
   +  “统计信息”选项卡列出了所有统计信息，以便您可以查看一段时间内的指标和趋势。
   +  “异常”选项卡显示了检测到的异常列表。

## 查看异常并训练异常检测算法
<a name="data-quality-visualize-anomalies"></a>

![\[屏幕截图显示了包含指标的“异常”选项卡。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data-quality-visualize-anomaly-detection.png)


 上图标注表示：

1.  检测到异常时，单击异常或选择“异常”选项卡 

1.  AWS Glue 数据质量自动监测功能对异常、实际值、预测范围进行了详细解释 

1.  AWS Glue 数据质量自动监测功能显示了趋势线。该趋势线包含实际值、基于实际值的预测趋势（红线）、预测上限以及预测下限 

1.  AWS Glue 数据质量自动监测功能会推荐数据质量规则，这些规则可用于捕捉未来的模式。您可以复制推荐给您的所有规则，然后将其应用于数据质量节点，以便有效地捕捉这些模式。

1.  您可以向机器学习（ML）模型提供输入来排除异常值，从而确保未来的运行可以准确检测异常。如果您没有明确排除异常，AWS Glue 数据质量自动监测功能会自动将其视为模型的一部分，以便将来进行预测。值得注意的是，只有最新的运行才能反映您提供的模型输入。例如，如果您返回并排除了前几次运行中的异常点，则除非您在最新的运行中查看和更新模型输入，否则模型将不会反映这些更改。模型将继续使用先前提供的输入，直到您在最近的运行中做出必要的调整。通过积极管理异常值排除，您可以改进机器模型，使其更好地理解哪些因素会构成特定数据模式和要求的异常，从而随着时间的推移实现更准确的异常检测。

## 查看一段时间内的数据统计信息并提供训练输入
<a name="data-quality-visualize-data-statistics-over-time"></a>

 有时，您可能想要查看数据统计信息或数据配置文件，还想查看它们在一段时间内的进展。为此，请选择**统计信息**或打开**统计信息**选项卡。然后就可以查看 AWS Glue 数据质量自动监测功能收集的最新数据统计信息。

![\[屏幕截图显示了包含数据集和列统计信息的“统计信息”选项卡。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data-quality-visualize-data-statistics-over-time.png)


 单击**查看趋势**可显示每个统计信息在一段时间内的进展情况。

![\[屏幕截图显示了包含数据集和列统计信息的“统计信息”选项卡。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/data-quality-view-trends-over-time.png)


1.  可以选择指定列的统计信息 

1.  可以查看趋势的进展情况 

1.  可以选择异常值，然后选择排除或包含这些值。通过提供这种反馈，算法将排除或包含已识别的异常数据点，然后重新训练模型。这种再训练过程可确保未来异常检测的准确性，因为模型会从您提供的反馈中学习，了解哪些值应视作异常，哪些不应视作异常。

    通过这个反馈循环，您可以改进机器模型，使其更好地理解哪些因素会构成特定数据模式和业务要求的异常。通过排除不应标记为异常的值，或者包含遗漏的值，重新训练的模型将能更好地区分预测异常和真正异常的数据点。