

# AWS Glue Studio を使用したデータ品質の評価
<a name="data-quality-gs-studio"></a>

 AWS Glue Data Quality は、定義したルールに基づき、データ品質の評価とモニタリングを行います。これにより、アクションが必要なデータを簡単に特定できます。AWS Glue Studio では、ビジュアルジョブにデータ品質ノードを追加して、データカタログ内のテーブルにデータ品質ルールを作成できます。これにより、経時的に進化するデータセットの変化をモニタリングし、評価できます。AWS Glue Studio で AWS Glue 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 Data Quality を使用する手順の概要を次に示します。

1. **データ品質ルールの作成** – 設定した組み込みルールセットを選択して、DQDL ビルダーを使用してデータ品質ルールのセットを作成します。

1.  **データ品質ジョブの設定** – データ品質結果と出力オプションに基づいてアクションを定義します。

1.  **[Save and run a data quality job]** – ジョブを作成して実行します。ジョブを保存すると、そのジョブ用に作成したルールセットが保存されます。

1.  **データ品質結果のモニタリングとレビュー** – ジョブの実行が完了した後にデータ品質結果をレビューします。必要に応じて、ジョブを将来の日付にスケジュールすることもできます。

## 利点
<a name="gs-data-quality-benefits"></a>

 データアナリスト、データエンジニア、データサイエンティストは、AWS Glue Studio でデータ品質評価ノードを使用し、ビジュアルジョブエディタでデータ品質を分析、設定、モニタリング、改善できます。データ品質ノードの使用には、次のような利点があります。
+  **データ品質の問題を検出可能** - データセットの特性をチェックするルールを作成することで、問題を確認できます。
+  **簡単に開始可能** - 事前構築済みのルールとアクションで開始できます。
+  **緊密な統合** - AWS Glue Data Quality は AWS Glue データカタログ上で実行されるため、AWS Glue Studio でデータ品質ノードを使用できます。

# AWS Glue Studio で ETL ジョブのデータ品質を評価する
<a name="tutorial-data-quality"></a>

このチュートリアルでは、AWS Glue Studio で AWS Glue Data Quality の使用を開始します。次の方法について説明します。
+  データ品質定義言語 (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 コンソールで、**[ジョブを作成する]** セクションから **[Visual with a source and target]** を選択し、続いて **[作成]** を選択します。

1.  データ品質変換を適用するノードを選択します。通常これは、変換ノードまたはデータソースです。

1.  [\$1] アイコンを選択して、左側のリソースパネルを開きます。検索バーで**データ品質評価**を検索し、取得した検索結果から**データ品質評価**を選択します。

1.  ビジュアルジョブエディタは、選択したノードから分岐した**データ品質評価**変換ノードを表示します。コンソールの右側で、自動的に **[Transform]** (変換) タブが開きます。親ノードを変更する必要がある場合は、**[Node properties]** タブを選択し、ドロップダウンメニューで親ノードを選択します。

    ノードの親を新たに選択すると、この親ノードと **データ品質評価**ノード間に、新しい接続が確立されます。不要な親ノードをすべて削除します。1 つの **データ品質評価**ノードに接続できるのは、親ノード 1 つだけです。

1.  データ品質評価変換は複数の親をサポートしているため、複数のデータセットにわたってデータ品質ルールを検証できます。複数のデータセットをサポートするルールには、ReferentialIntegrity、DatasetMatch、SchemaMatch、RowCountMatch、AggregateMatch などがあります。

   データ品質評価変換に複数の入力を追加する場合は、「プライマリ」入力を選択する必要があります。プライマリ入力は、データ品質を検証するデータセットです。他のすべてのノードまたは入力は、参照として扱われます。

   データ品質評価変換を使用して、データ品質チェックで不合格になった特定のレコードを識別できます。不良レコードにフラグを立てる新しい列がプライマリデータセットに追加されるため、プライマリデータセットを選択することをお勧めします。

1.  入力データソースのエイリアスを指定できます。ReferentialIntegrity ルールを使用する場合、エイリアスを使用して入力ソースを参照する別の方法があります。プライマリソースとして指定できるデータソースは 1 つだけのため、追加するデータソースにはそれぞれエイリアスが必要です。

   次の例では、ReferentialIntegrity ルールによってエイリアス名で入力データソースを指定し、プライマリデータソースと 1 対 1 の比較を実行します。

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

## ステップ 2: DQDL を使用してルールを作成する
<a name="tutorial-data-quality-step2"></a>

このステップでは、DQDL を使用してルールを作成します。このチュートリアルでは、**完全性**ルールタイプを使用して 1 つのルールを作成します。このルールタイプは、特定の表現に対して列内の完全な (null 以外の) 値の割合を確認します。DQDL の使用の詳細については、「[DQDL](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html)」を参照してください。

1.  **[変換]** タブで、**[Insert]** ボタンを選択し、**[Rule type]** を追加します。これにより、ルールタイプがルールエディタに追加されるため、そこでルールのパラメータを入力できます。
**注記**  
 ルールを編集する際は、ルールがかっこ内にあり、互いにカンマで区切られていることを確認してください。以下は、完全なルール表現の例です。  

   ```
   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.  ルールエディターで、ルールタイプの右側をクリックして、列を挿入する場所にカーソルを移動します。または、ルールの中に列名を入力することもできます。

    例えば、入力スキーマリストの列リストで、列の横にある **[Insert]** ボタンを選択します (この例では **[year]**)。これにより、列がルールに追加されます。

1.  次に、ルールエディターで、ルールを評価するための表現を追加します。**完全性**ルールタイプは特定の表現に対して列内の完全な (null 以外の) 値の割合を確認するため、`> 0.8` のような値を入力します。このルールは、列に完全な値 (null 以外) が 80% を超える割合で含まれているかどうかを確認します。

## ステップ 3: データ品質出力の設定
<a name="tutorial-data-quality-step3"></a>

 データ品質ルールを作成したら、データ品質ノード出力を指定する追加のオプションを選択できます。

1.  **[Data quality transform output]** (データ品質変換の出力) で、次のオプションから選択します。
   +  **[Original data]** – 元の入力データを出力することを選択します。このオプションを選択すると、新しい子ノード「rowLevelOutcomes」がジョブに追加されます。スキーマは、変換の入力として渡されたプライマリデータセットのスキーマと一致します。このオプションは、品質の問題が発生したときに、データを渡してジョブを失敗させる場合に便利です。

     別のユースケースとしては、データ品質チェックに失敗した不良レコードを検出する場合があります。不良レコードを検出するには、オプション **[Add new columns to indicate data quality errors]** を選択します。このアクションにより、「rowLevelOutcomes」変換のスキーマに 4 つの新しい列が追加されます。
     +  **DataQualityRulesPass** (文字列配列) — データ品質チェックに合格したルールの配列を提供します。
     +  **DataQualityRulesFail** (文字列配列) — データ品質チェックに失敗したルールの配列を提供します。
     +  **DataQualityRulesSkip** (文字列配列) — スキップされたルールの配列を提供します。次のルールはデータセットレベルで適用されるため、エラーレコードを識別できません。
       +  AggregateMatch 
       +  ColumnCount 
       +  ColumnExists 
       +  ColumnNamesMatchPattern 
       +  CustomSql 
       +  RowCount 
       +  RowCountMatch 
       +  StandardDeviation 
       +  Mean 
       +  ColumnCorrelation 
     +  **DataQualityEvaluationResult** — 行レベルで「合格」または「不合格」のステータスを表示します。全体的な結果は不合格でも、特定の記録は合格である可能性があることに注意してください。例えば、RowCount ルールは失敗でも、その他のルールはすべて成功である可能性があります。このような場合、このフィールドのステータスは「合格」です。

1.  **[Data quality results]** – 設定したルールと、それに関するステータス (合格/不合格) を出力することを選択します。このオプションは、結果を Amazon S3 またはその他のデータベースに書き込む場合に便利です。

1. **[Data quality output settings]** (オプション) – **[Data quality output settings]** を選択し、**[Data quality result location]** フィールドを表示します。続いて **[参照]** を選択し、データ品質の出力先として設定する 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)。
+  **[On ruleset failure]** — ジョブ実行中にルールセットが失敗した場合の対処方法を選択できます。データ品質が低下した場合にジョブを失敗させる場合は、次のいずれかのオプションを選択して、ジョブを失敗させるタイミングを選択します。デフォルトではこのアクションは選択されておらず、データ品質ルールが失敗した場合でもそのジョブの実行は完了します。
  +  **[なし]** — **[なし]** (デフォルト) を選択した場合、ジョブは失敗せず、ルールセットが失敗しても実行が継続されます。
  +  **[ターゲットにデータをロードした後にジョブを失敗させる]** — ジョブは失敗し、データは保存されません。結果を保存するには、データ品質の結果を保存する Amazon S3 の場所を選択します。
  +  **[Fail job without loading to target data]** — このオプションは、データ品質エラーが発生するとすぐにジョブを失敗させます。データ品質変換の結果を含め、データターゲットはロードされません。

## ステップ 5: データ品質結果を表示する
<a name="tutorial-data-quality-step5"></a>

 ジョブの実行が完了したら、**[Data quality]** タブを選択して、データ品質結果を表示します。

1.  データ品質結果はジョブを実行するたびに表示されます。各ノードには、データ品質ステータスと、そのステータスに関する詳細が表示されます。ノードを選択すると、すべてのルールと各ルールのステータスが表示されます。

1.  **[Download results]** を選択して、ジョブの実行とデータ品質結果に関する情報が記載された CSV ファイルをダウンロードします。

1.  qデータ品質結果と実行されたジョブが複数存在する場合は、日付と時間の範囲を指定することで、結果をフィルタリングできます。[Filter by a date and time range] を選択すると、フィルターウィンドウが展開します。

1.  相対範囲 (relative range) と絶対範囲 (absolute range) のどちらかを選択します。絶対範囲を選択した場合は、カレンダーで日付を選択した後に、開始時刻と終了時刻を入力します。完了したら、**[適用]** を選択します。

## 自動データ品質
<a name="automatic-data-quality"></a>

 Amazon S3 をターゲットとする AWS Glue ETL ジョブを作成すると、AWS Glue ETL は自動的に Data Quality ルールを有効にし、ロードされるデータに少なくとも 1 つの列があるかどうかをチェックします。このルールは、ロードされるデータが空であったり、破損していたりしないようにするためのものです。ただし、このルールが失敗してもジョブは失敗しませんが、データ品質スコアが低下します。さらに、異常検出はデフォルトで有効になっており、データ内の列数をモニタリングします。列数にバリエーションや異常がある場合、AWS Glue ETL はこれらの異常をユーザーに通知します。この機能によって、データに関する潜在的な問題を特定し、適切なアクションを実行することができます。Data Quality ルールとその設定を表示するには、AWS Glue ETL ジョブで Amazon S3 ターゲットをクリックします。提供されたスクリーンショットが示すように、ルールの設定が表示されます。

![\[このスクリーンショットは、選択可能な自動データ品質オプションを示しています。\]](http://docs.aws.amazon.com/ja_jp/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` になり、ruleMetrics と集計メトリクスが計算されるようになります。この機能は現在、AWS Glue インタラクティブセッションおよび Glue ETL ジョブでサポートされています。これは、Glue Catalog Data Quality API ではサポートされていません。

### 集計メトリクスの結果の取得
<a name="data-quality-aggregated-metrics-results"></a>

`additionalOptions` `"publishAggregatedMetrics.status": "ENABLED"` の場合、次の 2 つの場所で結果を取得できます。

1. `AggregatedMetrics` と `RuleMetrics` は、`resultId` を指定すると `GetDataQualityResult()` で返されます。`AggregatedMetrics` と `RuleMetrics` には以下が含まれます。

   **集約されたメトリクス:**
   + 処理された行の合計数
   + 合格した行の合計数
   + 失敗した行の合計数
   + 処理されたルールの合計数
   + 合格したルールの合計数
   + 失敗したルールの合計数  
![\[このスクリーンショットは、AWS Glue Data Quality 評価の集計メトリクスとルールメトリクス構造を示しています。\]](http://docs.aws.amazon.com/ja_jp/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 }
```

# Data Quality ルールビルダー
<a name="data-quality-rule-builder"></a>

データ品質定義言語 (DQDL) ルールビルダーを使用すると、データを評価するデータ品質ルールを作成できます。最初にルールタイプを選択し、次にルールエディタでパラメータを指定します。ルールエディタには、ルールを作成する際のエラーや警告も表示されます。

 [DQDL のガイド](https://docs.aws.amazon.com/glue/latest/dg/dqdl.html)には、DQDL 構文、組み込みのルールタイプ、および例を使用してルールを作成する方法に関する、包括的なドキュメントが用意されています。

## データ品質評価ノード
<a name="gs-data-quality-transform-expand-view"></a>

 **データ品質評価**変換ノードと DQDL ルールビルダーを使用する際に、作業スペースを拡張できます。
+  **[変換]** タブを画面全体に展開するには、ノードの詳細パネルの右上隅にある展開アイコンを選択します。
+  DQDL ルールエディタを展開するには、**[<<]** アイコンを選択してルールエディタを展開し、**[Rule types]** タブと **[スキーマ]** タブを折りたたみます。  
![\[このスクリーンショットは、データ品質評価ノードを含むジョブ図を示しています。\]](http://docs.aws.amazon.com/ja_jp/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)」を参照してください。

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

 **[Schema]** (スキーマ) タブには、親ノードの列名とデータ型が表示されます。複数のノードのスキーマが表示されます。入力スキーマを表示したり、列名で検索したり、ルールエディタに列を挿入したりできます。

![\[このスクリーンショットは、ルールエディタに「完全性」ルールタイプを使用した完全なルールを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data_quality_schema.png)


### ルールエディタ
<a name="gs-dataquality-rule-editor"></a>

 ルールエディタは、ルールを作成および編集できるテキストエディタす。DQDL ルールビルダーからルールタイプを選択すると、そのルールタイプがルールエディタに追加されます。その後、テキストを変更することで、必要に応じてパラメータを指定したり、ルールを追加したり、ルールを編集したりできます。AWS Glue Studio はルールエディタ内のルールを検証し、エラーと警告がある場合はそれらを表示します。

 **エラーおよび警告** 

 ルールが DQDL ルール構文に従っていない場合、エラーがあることを視覚的に示すいくつかのインジケータがルールエディタに表示されます。
+  ルールエディタにエラーアイコンが表示され、エラーのある行が赤くなります。
+  ルールエディタでは、赤いエラーアイコンの横にエラーの数が表示されます。
+  エラーのある行を選択すると、エラーの説明と場所 (行と列) がルールエディタの下部に表示されます。

![\[このスクリーンショットは、1 行目にエラーインジケータがあり、ルールエディタの下部にエラー数が表示された DQDL ルールエディタを示しています。その下はエラーの説明です。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data_quality_rule_editor_error.png)


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

 **データ品質アクション** 

 デフォルトでは、このアクションは選択されておらず、データ品質ルールが失敗した場合でもそのジョブの実行は完了します。

 次のアクションの中から選択します。アクションを使用して、特定の基準に基づいて結果を CloudWatch に公開したり、ジョブを停止したりできます。アクションは、ルールを作成した後にのみ使用できます。
+  **[Publish results to CloudWatch]** – ジョブを実行し、その結果を CloudWatch に追加します。
+  **[Fail job when data quality fails]** – データ品質ルールが失敗すると、結果的にジョブも失敗します。

 **データ品質変換出力** 
+  **[Original data]** – 元の入力データを出力することを選択します。このオプションは、品質の問題が検出されたときにジョブを停止する場合に理想的です。
+  **[Data quality metrics]** – 設定したルールとその合格または不合格のステータスを出力するように選択します。このオプションは、カスタムアクションを実行する場合に便利です。

 **データ品質出力設定** 

 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 は時間の経過とともにデータを分析して異常を検出します。データに関する貴重なデータ統計と観測結果が提供されるため、特定された異常に対してアクションできるようになります。

 この機能の内部の仕組みを理解するには、「[異常検出](data-quality-anomaly-detection.md)」のドキュメントを参照してください。

## 異常検出の有効化
<a name="data-quality-enabling-anomaly-detection"></a>

**AWS Glue Studio で異常検出を有効にするには:**

1.  ジョブの **[Data Quality]** ノードを選択し、**[異常検出]** タブをクリックします。**[異常検出を有効にする]** をオンに切り替えます。  
![\[スクリーンショットでは、[異常検出を有効にする] のトグルがオンになっています。これは、オンまたはオフを切り替えることができます。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-quality-enable-anomaly-detection.png)

1.  **[アナライザーを追加]** を選択して、異常を監視するデータを定義します。入力できるフィールドは [統計] と [データ] の 2 つです。
   +  **統計**は、データの形状やその他の特性に関する情報です。一度に 1 つまたは複数の統計を選択することも、**[すべての統計]** を選択することもできます。統計には、Completeness (完全性)、Uniqueness (一意性)、Mean (平均)、Sum (合計)、StandardDeviation (標準偏差)、Entropy (エントロピー)、DistinctValuesCount (個別値数)、UniqueValueRatio (固有値比率) などがあります。詳細については、「[アナライザー](dqdl.md#dqdl-analyzers)」ドキュメントを参照してください。
   +  **データ**はデータセット内の列です。すべての列を選択することも、個々の列を選択することもできます。  
![\[スクリーンショットは、[統計] と [データ] のフィールドを示しています。どの統計をデータセットに適用するか、どの列に適用するかを選択できます。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-quality-add-analyzer.png)

1.  **[異常検出範囲を追加]** を選択して変更を保存します。アナライザーを作成したら、**[異常検出範囲]** セクションで確認できます。

    **[アクション]** メニューを使用してアナライザーを編集したり、**[ルールセットエディター]** タブを選択してルールセットエディターのメモ帳でアナライザーを直接編集したりすることもできます。保存したアナライザーは、作成したルールの下に表示されます。

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

 更新されたルールセットとアナライザーが設定されると、AWS Glue Data Quality は受信データストリームを継続的にモニタリングします。設定によっては、アラートやジョブの停止によって潜在的な異常を示すことがあります。このプロアクティブモニタリングは、データパイプライン全体のデータ品質と整合性を確保するのに役立ちます。

 次のセクションでは、システムによって識別される異常を効果的にモニタリングする方法について説明します。また、AWS Glue Data Quality によって収集されたデータ統計を表示および分析する方法についても説明します。さらに、異常検出機能の強化につながる、機械学習モデルへのフィードバックの提供方法も理解できます。このフィードバックループは、モデルの精度を向上させ、特定のビジネス要件やデータパターンに合った異常を効果的に検出するために不可欠です。

# データ品質のスコアと異常を表示
<a name="data-quality-viewing-scores-and-anomalies"></a>

 このセクションでは、Data Quality のダッシュボードとそこで提供される各種機能について説明します。

## 高レベルのデータ品質メトリクスと傾向を視覚化して理解する
<a name="data-quality-visualize-metrics-and-trends"></a>

 ジョブが成功したら、**[Data Quality]** タブを選択して、データ品質のスコアと異常を表示します。

![\[このスクリーンショットは、選択した [Data Quality] タブとスコアとメトリクスを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-quality-visualize-data-quality-metrics.png)


 [Data Quality] タブの次のコンポーネントは、役に立つ情報を提供します。

1.  **[Data Quality]** タブを選択すると、データ品質メトリクスが表示されます。

1.  特定のジョブ実行 ID を選択して、Data Quality のスコアを表示します。

1.  このペインには 3 つの重要な情報が表示されます。異常、データ統計、またはルールを表示するために、個別に選択して特定のテーブルに移動することができます。
   +  ルールが設定されている場合の Data Quality のスコア。
   +  ルールとアナライザーによって収集された統計の数。
   +  検出された異常の総数。

1.  このトレンドチャートは、データ品質が時間の経過とともにどのように傾向しているかを表示しています。傾向にカーソルを合わせると、データ品質のスコアが悪化した特定の時点に移動できます。

1.  経時的な異常の傾向は、時間の経過とともに検出された異常の数を示します。

1.  タブ: 
   +  ルールタブは、すべてのルールとステータスのリストを表示するデフォルトのタブです。評価済みルールは、動的ルールが評価された実際の値を表示する場合に便利です。
   +  統計タブにはすべての統計が一覧表示されるため、メトリクスとトレンドを経時的に表示できます。
   +  異常タブには、検出された異常のリストが表示されます。

## 異常の表示と異常検出アルゴリズムのトレーニング
<a name="data-quality-visualize-anomalies"></a>

![\[このスクリーンショットは、異常タブとメトリクスを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-quality-visualize-anomaly-detection.png)


 上記のイメージの呼び出し: 

1.  異常が検出されたら、異常をクリックするか、異常タブを選択します。

1.  AWS Glue Data Quality は、異常、実際の値、予測範囲の詳細な説明を提供します 

1.  AWS Glue Data Quality はトレンドラインを表示します。実際の値、実際の値 (赤い線) に基づく派生的傾向、上限値および下限値が示されています。

1.  AWS Glue Data Quality では、将来のパターンをキャプチャするために使用できるデータ品質ルールを推奨しています。推奨されるすべてのルールをコピーしてデータ品質ノードに適用し、これらのパターンを効果的にキャプチャできます。

1.  機械学習 (ML) モデルに入力を提供して異常値を除外し、将来の実行で異常を正確かつ確実に検出できます。異常を明示的に除外しない場合、AWS Glue Data Quality はそれらを将来の予測のモデルの一部として自動的に考慮します。指定したモデル入力が反映されるのは最新の実行のみであることに注意してください。例えば、過去数回の実行から異常なポイントを除外した場合、最新の実行でモデル入力を表示および更新しない限り、モデルはそれらの変更を反映しません。モデルは、最新の実行で必要な調整を行うまで、以前に提供された入力を引き続き使用します。異常値の除外を積極的に管理することで、特定のデータパターンと要件に対する異常の構成要素への ML モデルの理解を絞り込み、時間の経過とともにより正確な異常検出を行うことができます。

## 時間の経過に伴うデータ統計の表示とトレーニング入力の提供
<a name="data-quality-visualize-data-statistics-over-time"></a>

 データ統計やデータプロファイルを表示し、時間の経過とともにどのように進行しているかを表示したい場合があります。これを行うには、**[統計]** を選択するか、**[統計]** タブを開きます。その後、AWS Glue Data Quality によって収集された最新のデータ統計を表示できます。

![\[このスクリーンショットは、データセットと列の統計を含む統計タブを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-quality-visualize-data-statistics-over-time.png)


 **[トレンドの表示]** をクリックすると、各統計が時間の経過とともにどのように進行しているかが表示されます。

![\[このスクリーンショットは、データセットと列の統計を含む統計タブを示しています。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/data-quality-view-trends-over-time.png)


1.  特定の列の統計を選択できます 

1.  傾向の進行状況を確認できます 

1.  異常な値を選択して、除外したり含めたりできます。このフィードバックを提供することで、アルゴリズムは識別された異常なデータポイントを除外または含め、モデルを再トレーニングします。この再トレーニングプロセスにより、どの値を異常と見なすべきかについて、モデルが提供したフィードバックから学習するため、正確な異常検出を行うことができます。

    このフィードバックループを通じて、アルゴリズムの特定のデータパターンとビジネス要件に対する異常の構成要素への理解を絞り込むことができます。再トレーニングされたモデルでは、異常としてフラグを付けるべきではない値を除外したり、見逃された値を含めたりすることで、予想されるデータポイントと真に異常なデータポイントの区別がしやすくなります。