

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

# 在 中驗證資料品質AWS Glue DataBrew
<a name="profile.data-quality-rules"></a>

為了確保資料集的品質，您可以在規則集中定義資料品質規則清單。*規則集*是一組規則，可將不同的資料指標與預期值進行比較。如果不符合任何規則的條件，則整體規則集會驗證失敗。然後，您可以檢查每個規則的個別結果。對於導致驗證失敗的任何規則，您可以進行必要的更正和重新驗證。

規則的範例包括下列項目：
+ 資料欄中的值`"APY"`介於 0 到 100 之間
+ 資料欄中遺失值的數量`group_name`不超過 5%

您可以為個別資料欄定義每個規則，或將其獨立套用至數個選取的資料欄，例如：
+ 資料欄 `"rate"`、`"pay"`、 的最大值不超過 100`"increase"`。

規則可以包含多個簡單的檢查。您可以定義所有應該是 true 還是任何，例如：
+ 資料欄中的值`"ProductId"`應以資料欄中值的 `"asin-"` AND 長度`"ProductId"`為 32 開頭。

您可以針對彙總值驗證規則`max`，例如 `min`、 或 `number of duplicate values`，其中只比較一個值，或是資料欄每一列中的非彙總值。在後一種情況下，您也可以定義「傳遞」閾值，例如 `value in columnA > value in columnB for at least 95% of rows`。

 如同設定檔資訊，您只能為簡單類型的資料欄定義資料欄層級資料品質規則，例如字串和數字。您無法定義複雜類型資料欄的資料品質規則，例如陣列或結構。如需使用設定檔資訊的詳細資訊，請參閱 [建立和使用AWS Glue DataBrew設定檔任務](jobs.profile.md)。

## 驗證資料品質規則
<a name="profile.data-quality-rules-validating"></a>

定義規則集之後，您可以將其新增至設定檔任務以進行驗證。您可以為資料集定義多個規則集。

例如，一個規則集可能包含最低可接受條件的規則。該規則集的驗證失敗可能表示資料無法接受進一步使用。範例是用於機器學習訓練之資料集的索引鍵資料欄中缺少值。您可以使用第二個規則集搭配更嚴格的規則，來驗證資料集的品質是否良好，因此不需要清除。

您可以在設定檔任務組態中套用為指定資料集定義的一或多個規則集。當設定檔任務執行時，除了資料設定檔之外，還會產生驗證報告。驗證報告可在與設定檔資料相同的位置取得。如同設定檔資訊，您可以在 DataBrew 主控台中探索結果。在**資料集詳細資訊**檢視中，選擇**資料品質**索引標籤以檢視結果。如需使用設定檔資訊的詳細資訊，請參閱 [建立和使用AWS Glue DataBrew設定檔任務](jobs.profile.md)。

## 對驗證結果採取行動
<a name="profile.data-quality-rules-results-acting"></a>

當 DataBrew 設定檔任務完成時，DataBrew 會傳送 Amazon CloudWatch 事件，其中包含該任務執行的詳細資訊。如果您也設定任務來驗證資料品質規則，DataBrew 會為每個已驗證的規則集傳送事件。事件包含其結果 (`SUCCEEDED`、 `FAILED`或 `ERROR`)，以及詳細資料品質驗證報告的連結。然後，您可以根據驗證狀態調用**下一個動作**來自動執行進一步的動作。如需將事件連線至目標動作的詳細資訊，例如 Amazon SNS 通知、AWS Lambda函數叫用等，請參閱 [Amazon EventBridge 入門](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-getting-set-up.html)。

 以下是 DataBrew 驗證結果事件的範例：

```
{
  "version": "0",
  "id": "fb27348b-112d-e7c2-560d-85e7c2c09964",
  "detail-type": "DataBrew Ruleset Validation Result",   
  "source": "aws.databrew",                     
  "account": "123456789012",          
  "time": "2021-11-18T13:15:46Z", 
  "region": "us-east-1",
  "resources": [],
  "detail": {
    "datasetName": "MyDataset", 
    "jobName": "MyProfileJob",
    "jobRunId": "db_f07954d20d083de0c1fc1eee11498d8635ee5be4ca416af27d33933e91ff4e6e",
    "rulesetName": "MyRuleset",
    "validationState": "FAILED",
    "validationReportLocation": "s3://MyBucket/MyKey/MyDataset_f07954d20d083de0c1fc1eee11498d8635ee5be4ca416af27d33933e91ff4e6e_dq-validation-report.json"
  }
}
```

您可以使用 等事件的屬性`detail-type`，`source`以及 `detail` 屬性的巢狀屬性，在 Amazon Eventbridge 中[建立事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html#eb-create-pattern)。例如，符合任何 DataBrew 任務中所有失敗驗證的事件模式如下所示：

```
{
  "source": ["aws.databrew"],
  "detail-type": ["DataBrew Ruleset Validation Result"],
  "detail": {
   "validationState": ["FAILED"]
  }
}
```

如需建立規則集和驗證其規則的範例，請參閱 [使用資料品質規則建立規則集](profile.data-quality-rules-create.md)。如需在 DataBrew 中使用 CloudWatch 事件的詳細資訊，請參閱 [使用 CloudWatch Events 自動化 DataBrew](monitoring.cloudwatch-events.md) 

## 檢查資料品質規則的驗證結果並更新資料品質規則
<a name="profile.data-quality-ruleset-inspect-results"></a>

設定檔任務完成後，您可以檢視資料品質規則的驗證結果，並視需要更新規則。

**檢視資料品質規則的驗證資料**

1. 在 DataBrew 主控台上，選擇**檢視資料設定檔**。這樣做會顯示資料集**的資料設定檔概觀**索引標籤。

1. 選擇**資料品質規則**索引標籤。在此索引標籤上，您可以檢視所有資料品質規則的結果。

1. 選取個別規則以取得該規則的詳細資訊。

對於驗證失敗的任何規則，您可以進行必要的更正。

**更新資料品質規則**

1. 在導覽窗格中，選擇 **DQ RulesS**。

1. 在**資料品質規則集名稱**下，選擇包含您計劃編輯之規則的資料集。

1. 選擇您要變更的規則，然後選擇**編輯**。

1. 進行必要的更正，然後選擇**更新規則集**。

1. 重新執行任務。重複此程序，直到所有驗證通過為止。