

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 启用数据质量验证
<a name="emr-spark-upgrade-agent-data-quality-validation"></a>

您可以通过 IDs 在提示中同时提供源集群和目标集群来启用数据质量检查。系统在源集群上运行您的现有应用程序，以收集基准元数据进行比较。

**注意：只能跟踪 Spark 写入操作的数据质量。**

```
Upgrade my pyspark application <local-path>/pyspark-example-24/ from EMR version 6.0.0 to 7.12.0. Use EMR-EC2 Cluster <source-cluster-id> for source version run  
and <target-cluster-id> for target version run. Use s3 path s3://<please fill in your staging bucket path> to store updated application artifacts  
and s3://<please fill in your staging bucket path>/metadata for storing metadata. Enable data quality checks.
```

## 数据质量工作流程差异
<a name="emr-spark-upgrade-agent-data-quality-workflow"></a>

该工作流程遵循与标准升级过程相同的步骤，但这些其他步骤按上述顺序排列：
+ **[第 3 步之后：计划审查和定制]**
  + **使用当前配置**构建：使用当前配置构建应用程序以提交源集群。
  + **在源 EMR 集群上验证**：在源 Spark 版本上运行原始应用程序，并收集输出元数据以进行基准比较。
+ **[第 7 步之后：升级摘要] 数据质量摘要**：版本和分析之间的数据质量比较报告。

### 数据质量不匹配能力目前包括：
<a name="emr-spark-upgrade-agent-data-quality-mismatch"></a>
+ **架构检查**：检测列结构的变化：缺少或新添加的列、数据类型差异以及可空性更改。
+ **值检查***（仅限数字和字符串列）*
  + 比较最小值、最大值和平均值（仅限数字列的平均值）。
  + 对于字符串，最小值和最大值基于字典顺序。
+ **聚合统计检查**：比较源输出和目标输出之间的总行数。

## 数据质量验证：范围和局限性
<a name="emr-spark-upgrade-agent-data-quality-scope"></a>

数据质量验证支持使用 spark-submit 命令执行 EMR EC2 步骤，Spark 版本大于等于 3.0，EMR 集群不能有 > 1。 StepConcurrencyLevel 数据质量验证会评估 Spark 查询计划数据接收器节点的统计信息（未捕获数据源/Transforms 的元数据），并涵盖常见的 Spark 写入操作，包括文件写入、数据库插入、表创建和各种数据源输出。