

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 啟用資料品質驗證
<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>
+ **結構描述檢查**：偵測資料欄結構中的變更：遺失或新增的資料欄、資料類型差異，以及 nullability 變更。
+ **值檢查 ***（僅限數字和字串欄）*
  + 比較最小值、最大值和平均值 （僅表示數值資料欄）。
  + 對於字串，最小和最大是根據語彙順序。
+ **彙總統計檢查**：比較來源和目標輸出之間的資料列總數。

## 資料品質驗證：範圍和限制
<a name="emr-spark-upgrade-agent-data-quality-scope"></a>

資料品質驗證支援使用 spark-submit 命令搭配 Spark 版本 >= 3.0 的 EMR-EC2 步驟，且 EMR 叢集不能讓 StepConcurrencyLevel > 1。Data Quality Validation 會評估 Spark 查詢計劃之資料接收器節點的統計資料 （不會擷取資料來源/轉換的中繼資料），並涵蓋常見的 Spark 寫入操作，包括檔案寫入、資料庫插入、資料表建立和各種資料來源輸出。