Data Catalog で AWS Glue Data Quality を使用する
この開始方法セクションでは、AWS Glue Data Quality コンソールから AWS Glue を使用する際に役立つ手順をご紹介します。品質評価ルールの推奨事項の生成や、データに照らしたルールセットの評価など、重要なタスクを完了する方法について確認できます。
トピック
前提条件
AWS Glue Data Quality を使用する前に、Data Catalog と AWS Glue のクローラーの使用に慣れておく必要があります。AWS Glue Data Quality を使用すれば、Data Catalog データベースのテーブルの品質を評価できます。また、以下も必要になります:
-
データ品質ルールセットの評価時に対照する Data Catalog のテーブル。
-
ルールの推奨事項の生成やデータ品質タスクの実行時に、AWS Glue が使用する IAM ロール。このロールには、さまざまな AWS Glue Data Quality プロセスをユーザーに代わって実行するための、必要なリソースにアクセスする権限が必要です。この対象となるリソースには AWS Glue、Amazon S3、および CloudWatch が含まれます。AWS Glue Data Quality の最低限必要なアクセス許可を含むポリシーの例については、「IAM ポリシーの例」を参照してください。
AWS Glue 用の IAM ロール の詳細については、「AWS Glue サービスの IAM ポリシーを作成する」と「AWS Glue 用の IAM ロールを作成する」を参照してください。「Authorization for AWS Glue Data Quality actions」のページでは、Data Quality 専用の AWS Glue アクセス許可すべてのリストもご覧いただけます。
-
さまざまなデータを含むテーブルが 1 つ以上あるデータベース。このチュートリアルで使用するテーブルには
yyz-tickets
という名前が付いており、テーブルtickets
が付随しています。このデータは、トロント市が公開している駐車違反切符の情報を集めたものです。独自のテーブルを作成するときは、最適な推奨ルールを設定できるよう、さまざまな有効なデータがそこに入力されていることを確認します。
手順の例
サンプルのデータセットを使用した手順の例については、AWS Glue Data Quality に関するブログ記事
ルールの推奨事項の生成
ルールの推奨事項を利用すると、コードを記述することなく、すぐに Data Quality の使用を始められます。AWS Glue Data Quality を使用すると、データの分析、ルールの特定、品質評価タスクで評価されるルールセットの作成を行えます。推奨事項の実行は、実行から 90 日後に自動的に削除されます。
品質評価ルールの推奨事項を生成するには
-
AWS Glue コンソール (https://console.aws.amazon.com/glue/
) を開きます。 -
ナビゲーションペインで、[Tables] (テーブル) を選択します。次に、品質評価ルールの推奨事項を生成する対象となるテーブルを選択します。
-
テーブルの詳細ページで、[Data quality] タブを選択し、そのテーブルの AWS Glue Data Quality ルールにアクセスします。
-
[Data quality] タブで、[Add rules and monitor data quality] を選択します。
-
[Ruleset builder] ページで、ページ上部のアラートに、「ルールの推奨事項が実行されていない場合は推奨事項タスクを開始する」との指示が表示されます。
-
[Recommend rules] を選択してモーダルを開き、推奨事項タスクのパラメータを入力します。
-
AWS Glue へのアクセス許可を持つ IAM ロールを選択します。このロールには、さまざまな AWS Glue Data Quality プロセスを、ユーザーに代わって実行するために必要なリソースに、アクセスするための許可が必要です。
-
希望する設定に従ってフィールドに入力したら、[Recommend rules] を選択し、推奨事項タスクの実行を開始します。推奨事項の実行が進行中の場合、または完了した場合は、こちらのアラートで実行を管理できます。ステータスの変化を確認する際にページの更新が必要になる場合があります。完了済みと進行中の推奨事項タスクの実行状況は [実行履歴] のページに表示されます。ここには過去 90 日分の推奨事項の実行がすべて表示されます。
推奨ルールの意味
AWS Glue Data Quality は、入力テーブルの各列のデータに基づいてルールを生成します。このルールを使用して、品質要件を維持するために、データのフィルタリングが可能な潜在的境界を特定します。以下は生成されたルールのリストです。ルールの意味と、このルールがデータに適用されたときどのような処理が行われるのか、理解するのに役立つ例が記載されています。
生成されたデータ品質定義言語 (DQDL) のルールタイプの一覧は、「データ品質定義言語 (DQDL)」を参照してください。
-
IsComplete "SET_FINE_AMOUNT"
– 特定の行に対して列が入力されていることを確認するIsComplete
ルールです。データ内で列を非オプションとしてタグ付けするときにこのルールを使用します。 Uniqueness "TICKET_NUMBER" > 0.95
– 列内のデータが一意のしきい値を満たしていることを確認するUniqueness
ルールです。この例では、"TICKET_NUMBER"
の特定の行に入力されたデータは他のすべての行と内容が最大 95% 同じであると判断されましたが、これはこのルールを示唆しています。ColumnValues "PROVINCE" in ["ON", "QC", "AB", "NY",...]
–ColumnValues
ルールは、既存の列の内容に基づいて、この列の有効な値を定義します。この例では、各行のデータは州または地域の 2 文字のナンバープレートコードです。ColumnLength "INFRACTION_DESCRIPTION" between 15 and 31
—ColumnLength
ルールは、列のデータに文字数の制限を適用します。このルールは、文字列の列に記録された最小長と最大長に基づき、サンプルデータから生成されます。
ルールの推奨のモニタリング
品質評価ルールの推奨事項を実行すると、[Add rules and monitor data quality] ページに、情報と、上部のバーで実行できる追加のアクションが表示されます。
ルールの推奨が進行中の場合、推奨タスクが完了する前に [実行を停止] を選択できます。タスクが進行中の場合、ステータスは [in progress] と表示され、実行が開始された日付と時刻が表示されます。
ルールの推奨が完了すると、ルール推奨のバーに、推奨されたルールの数、最後の推奨実行のステータス、完了した日付とタイムスタンプが表示されます。
推奨ルールを追加するときは、[Insert Rule Recommendation] を選択します。過去に推奨されたルールを閲覧するには、具体的な日付を選択します。新しい推奨を実行するには、[More actions] を選択して、次に [Recommended rules] を選択します。
デフォルトの設定は、[Manage user settings] を選択して設定します。Amazon S3 のデフォルトパスを設定すると、ルールセットを保存したり、データカタログを実行するためのデフォルトロールを設定したりできます。
推奨ルールセットの編集
AWS Glue Data Quality は利用可能な既存のデータに基づいてルールを生成するため、自動化された提案に予期せぬルールや望ましくないルールが表示される場合があります。推奨ルールセットを最大限活用するには、ルールセットを評価し、修正を加えることが必要になります。本チュートリアルのこちらのステップでは、前回のステップで生成したルールを修正し、一部のデータに、より制限の厳しい条件を適用します。また、他のルールの制限を緩和し、正確な一意のデータを後で追加できるようにすることも可能です。
推奨されたルールセットを編集する
AWS Glue コンソールで [データカタログ] を選択し、次にナビゲーションペインで [Databases tables] を選択します。テーブル
tickets
を選択します。-
テーブルの詳細ページで、[Data quality] タブを選択し、そのテーブルの AWS Glue Data Quality のルールと設定にアクセスします。
[Rulesets] セクションで、ルールの推奨事項の生成 で生成したルールセットを選択します。
[アクション] を選択し、次にコンソールウィンドウで [編集] を選択します。ルールセットエディタがコンソールにロードされます。ここには、ルールの編集用ペインと DQDL のクイックリファレンスが含まれています。
-
スクリプトの
2
行目を削除します。これにより、データベースのサイズを特定の行数に制限する条件が緩和されます。編集後、ファイルの 1~3 行目に以下の内容が含まれているはずです。Rules = [ IsComplete "TAG_NUMBER_MASKED", ColumnLength "TAG_NUMBER_MASKED" between 6 and 9,
-
スクリプトの
25
行目を削除します。これにより、記録された州の 96% がON
であるという条件は緩和されます。編集後、ファイルの24
行目からルールセットの最後までに以下の内容が含まれているはずです。ColumnValues "PROVINCE" in ["ON", "QC", "AB", "NY", "AZ", "NS", "BC", "MI", "PQ", "MB", "PA", "FL", "SK", "NJ", "OH", "NB", "IL", "MA", "CA", "VA", "TX", "NF", "MD", "PE", "CT", "NC", "GA", "IN", "OR", "MN", "TN", "WI", "KY", "MO", "WA", "NH", "SC", "CO", "OK", "VT", "RI", "ME", "AL", "YT", "IA", "DE", "AR", "LA", "XX", "WV", "MT", "KS", "NT", "DC", "NV", "NE", "UT", "MS", "NM", "ID", "SD", "ND", "AK", "NU", "GO", "WY", "HI"], ColumnLength "PROVINCE" = 2 ]
-
14
行目を以下の内容に変更します。IsComplete "TIME_OF_INFRACTION",
これにより、データベースを違反時間が記録されたチケットのみに制限して、列の条件を強化します。違反時間が記録されていないチケットは、このデータセットでは常に無効なデータとみなされます。これは、さらなるデータ使用や品質ルールを決定する際の調査など、パーティショニングや変換の方が適している場合とは異なります。
コンソールページの下部で [Update Ruleset] を選択します。
新しいルールセットの作成
ルールセットは、データに対応させて評価するための品質評価ルールをグループ化したものです。AWS Glue コンソールでは、データ品質定義言語 (DQDL) を使用してカスタムルールセットを作成できます。
品質評価ルールセットを作成するには
-
AWS Glue のコンソールで [データカタログ] を選択し、次に [データベース] を選択し、ナビゲーションペインで [テーブル] を選択します。テーブル
tickets
を選択します。 -
[Data quality] (データ品質) タブを開きます。
-
[Rulesets] セクションで、[Create ruleset] を選択します。DQDL エディタがコンソールで起動します。ここには、直接編集できるテキスト領域と、DQDL ルールおよびテーブルスキーマのクイックリファレンスがあります。
-
DQDL エディタのテキスト領域にルールを追加していきます。チュートリアルから直接ルールを記述することもできますし、データ品質ルールエディタの DQDL ルールビルダー機能を使用することもできます。
注記
DQDL ルールビルダーの使用方法
リストからルールタイプを選択し、プラス記号を選択してサンプルの構文をエディタペインに挿入します。
プレースホルダーの列名を、実際の列名で置き換えます。テーブルの列名は、[Create ruleset] タブで入手できます。
必要に応じて式のパラメータを更新します。DQDL がサポートする式の完全なリストは、「表現」でご確認ください。
一例を挙げると、次のルールは
tickets
テーブルのticket_number
列のデータ検証に関する制約です。次のルールを追加するには、DQDL ルールビルダーを使用するか、ルールセットを直接編集します。IsComplete "ticket_number", IsUnique "ticket_number", ColumnValues "ticket_number" > 9000000000
[Run name] フィールドに新しいルールセットの名前を入力します。
[Save ruleset] を選択します。
複数のデータセットのデータ品質を評価する
ReferentialIntegrity ルールセットと DatasetMatch ルールセットを使用することで、複数のデータセットにデータ品質のルールを設定できます。ReferentialIntegrity は、プライマリデータセット内のデータが他のデータセット内に存在するかをチェックします。
参照のデータセットを追加するときは、[スキーマ] タブを選択し、次に [Update reference tables] を選択します。データベースとテーブルを選択するよう要求されます。テーブルを追加したら、データ品質ルールを設定できます。AggregateMatch、RowCountMatch、ReferentialIntegrity、SchemaMatch、DatasetMatch などのルールタイプは、複数のデータセットを横断してデータ品質チェックを実行する機能をサポートしています。
ルールセットを実行してデータ品質を評価する
品質評価タスクを実行すると、AWS Glue Data Quality はデータと対応させてルールセットを評価し、データ品質のスコアを計算します。このスコアは、入力に対して合格したデータ品質ルールの割合を表します。
品質評価タスクを実行するには
-
AWS Glue のコンソールで [データカタログ] を選択し、次に [データベース] を選択し、ナビゲーションペインで [テーブル] を選択します。テーブル
tickets
を選択します。 -
[Data quality] タブを選択します。
-
[Rulesets] リストから、テーブルに照らして評価を行うルールセットを選択します。このステップでは、生成されたルールではなく、自分で既に作成または変更したルールセットを使用することが推奨されます。[Run] (実行) を選択します。
-
モーダルで、自分の IAM ロールを選択します。このロールには、さまざまな AWS Glue Data Quality プロセスを、ユーザーに代わって実行するために必要なリソースに、アクセスするための許可が必要です。この IAM ロールをデフォルトとして保存するか、[Default Setting] のページに進んでこれを変更します。
-
[Data quality actions] (データ品質アクション) で、必要に応じて [Publish metrics to Amazon CloudWatch] (Amazon CloudWatch にメトリクスを公開する) を選択します。これを選択した場合、AWS Glue Data Quality は、評価に合格したルールと不合格だったルール、それぞれの数についてのメトリクスをパブリッシュします。この方法で保存されたメトリクスに対してアクションを実行するときは、CloudWatch アラームを使用します。アラートの設定用に、主要なメトリクスも Amazon EventBridge に公開されます。詳細については、「Setting up alerts, deployments, and scheduling」を参照してください。
-
[Run Frequency] で、[オンデマンドで実行する] または [Schedule the ruleset] を選択します。ルールセットをスケジュールした場合、タスク名を入力するよう求められます。スケジュールは Amazon EventBridge で作成されます。スケジュールの編集は Amazon EventBridge で行えます。
-
データ品質評価の結果を Amazon S3 に保存するには、[Data quality results location] を選択します。このタスクのために先に選択した IAM ロールには、このロケーションに対する書き込みのアクセス権限が必要です。
-
[Additional Configurations] の [Requested number of workers] に、AWS Glue でデータ品質タスクに割り当てる数を入力します。
-
オプションで、データソースにフィルターを設定できます。これにより、読み取るデータを減らせます。また、フィルターを使用して、パーティション情報を選択し、これを API 呼び出しを介してパラメータとして渡すことにより、増分検証を実行することもできます。パフォーマンスを改善するには、パーティション述語を指定します。
-
[Run] (実行) を選択します。[Data quality task runs] (実行中のデータ品質タスク) リストに、新しいタスクが表示されます。タスクの [実行ステータス] 列に [完了] と表示されたら、品質スコアの結果を確認できます。最新のステータスを確認するため、コンソール画面の更新が必要になる場合があります。
-
品質評価結果の詳細の列を表示するには、[+] アイコンをクリックしてルールセットを展開します。結果には、評価に合格したルールと不合格だったルール、そして不合格の原因が表示されます。
データ品質スコアと結果を表示する
作成された全ルールセットの最新の実行を確認するには
-
AWS Glue コンソールのナビゲーションペインで、[Tables] (テーブル) を選択します。次に、品質評価タスクを実行する対象のテーブルを選択します。
-
[Data quality] タブを選択します。
-
[Data quality snapshot] には、時間の経過に伴う実行の一般的傾向が示されています。デフォルトでは、すべてのルールセットにおける最後の 10 回の実行が表示されます。ルールセットごとにフィルタリングするには、ドロップダウンリストから希望するルールセットを選択します。実行数が 10 回未満の場合は、完了した実行のうち表示可能なものがすべて表示されます。
-
[Data quality] テーブルには、各ルールセットが、最新の実行 (もしある場合) のスコアと共に表示されます。ルールセットを展開すると、そのルールセットに含まれるルールが、その実行のルール結果と併せて表示されます。
特定のルールセットにおける最新の実行を確認するには
-
AWS Glue コンソールのナビゲーションペインで、[Tables] (テーブル) を選択します。次に、品質評価タスクを実行する対象のテーブルを選択します。
-
[Data quality] タブを選択します。
-
[Data quality] テーブルで、特定のルールセットを選択します。
-
[Ruleset details] ページで、[Run history] タブを選択します。
この特定のルールセットに対するすべての評価実行が、このタブ内のテーブルに一覧表示されます。スコアの履歴と実行のステータスを確認できます。
-
特定の実行に関する詳細情報を表示するには、[実行 ID] を選択して [Evaluation run details] のページに進みます。このページでは、実行の詳細と、個々のルール結果のステータスに関する詳細を確認できます。