背景・目的
先日、AWS Glue Data Quality(プレビュー版)が発表されたので、仕様の理解と簡単に試してみました。
なお、現在プレビュー版であるため、GAまでに仕様が変わる可能性があります。
まとめ
- 2022/12/14現在、プレビューである。
- Data Qualityは、OSSのDeequを利用している。
- データの品質評価には、DQDLという独自の言語を書いて実装する。
- Glueでは、Transformの一つのノードとして実装されている。
概要
AWS Glue Data Qualityとは?
- 自動的にデータを分析、データの統計情報を収集
- 推奨されるデータ品質ルールを設定し、それに基づき検証を開始する。推奨されたデータ品質ルールは変更することも、新しいルールを追加することも可能。
- データ品質が低下した場合に、ユーザに警告するアクションを設定することも可能。データ品質ルールとアクションは、データパイプライン上でGlueのETLジョブに設定することも可能。
- OSSのDeequを使用してルールを評価する。
DQDL
- Data Quality Definition Languageの略。
- AWS Glue Data Qualityのルールを定義するために使用するドメイン固有の言語。
DQDL Syntax
- 大文字と小文字が区別される。
- 個々のデータ品質ルールをグループ化するルールセットが含まれる。
- ルールセットの作成には、Rulesという名前のリストを作成する。(以下参照)
Rules = [
IsComplete "order-id",
IsUnique "order-id"
]
Rule structure
- ルールタイプにより異なるが、基本的な形式は以下の通り。
<RuleType> <Parameter> <Parameter> <Expression>
- RuleTypeは、構成するルールタイプ名。例えば以下のようなものがある。
- IsComplete
- IsUnique
- CustomSql
- Rule Parametersは、ルールタイプごとに異なる。詳細はこちらを参照。
Rule combination
- ルールを結合するために、以下が使用できる。
- and
- andで接続する各ルールは括弧で加工必要がある。
(IsComplete "id") and (IsUnique "id")
- or
- orで接続する各ルールは括弧で加工必要がある。
(RowCount "id" > 100) or (IsPrimaryKey "id")
- and
実践
Tutorial: Getting started with Data Quality
こちらを元に試してみます。
Step 1: Add the Evaluate Data Quality node to the visual job
Step 2: Create a rule using DQDL
DQDLを使用してルールを作成します。
-
Evaluate DataQualityのTransformタブを選択します。
-
DQDL rule builderでCompletenessを選択します。
-
Schemaタブをクリックすると、列名が表示されるので対象の列を選択します。ここでは、order_dateを選択してます。
Step 3: Configure Data Quality actions and output
- 以下を設定します。
- Data quality actions
- 以下により、CWLに結果が出力されます。また、失敗した場合ロードせずに異常終了します。
- Publish results to Amazon CloudWatchにチェック
- Fail job when data quality failsにチェック
- fail job without loading target dataを選択
- 以下により、CWLに結果が出力されます。また、失敗した場合ロードせずに異常終了します。
- Data quality transform output
- 以下により、データ品質評価の結果を出力します。
- Data quality results
- 以下により、データ品質評価の結果を出力します。
- Data quality output settings
- 指定することで、データ品質評価の結果を指定したS3バケットに出力します。
- Data quality actions
- 設定結果は以下のとおりです。
Step 4 : Run job
Step 5: View data quality results
-
ジョブが完了したらジョブのData qualityタブをクリックします。
-
Data quality output settingsでS3ファイル に出力するように設定していたので確認します。ファイルが出力されています。
-
S3 Selectで確認してみます。
考察
以前、データマネジメントのデータ品質を調査している過程で、Deequを知りました。当時は自前でインストールやセットアップが必要だったため、試すまで至っていませんでした。この度、Glueに統合されて簡単に利用できることがわかったので、今後は使い倒していこうと思います。
参考