はじめに
こんにちは。株式会社ジールの@Shin-Nakamura224です。
先日、Glue Data Quality(プレビュー版)が発表されたので、
概要と簡単な検証を紹介したいと思います。
今回の記事はGlue Data Qualityの概要について紹介いたします。
検証 ↓
Glue Data Quality(プレビュー版)について②
概要
Glue Data Qualityとは
AWS Glueでデータの品質検査(問題の検出)を簡単に実施できる機能になります。
(2022年11月30日発表)
ユーザは品質評価のルール(DQDL)を設定して、データの品質検査を実施することが可能です。
Amazonが開発したOSSのDeequを使用してルールを評価します。
引用元:https://aws.amazon.com/jp/about-aws/whats-new/2022/11/aws-glue-data-quality-preview/
データの品質検査とは
データレイクには様々なデータが保存されますが、データソースに変更が加わったり、
処理が変更されると、データソースに保存されるデータが意図しない形に変更される可能性があります。
よってデータ分析の際には正確なデータを使用するための検査が必要になります。
品質検査の例
・特定カラムが含まれているか
・カラムに含まれる値の範囲
・値がプライマリーキーとして利用できるか
・ユニークな値の判定
今までは、品質検査を行うために手作業で品質検査を実装するコードを書く必要がありました。
そこで今回発表された AWS Glue Data Quality を利用することによって、
簡単に品質検査を行うことができるようになりました。
DQDL(Data Quality Definition Language)
DQDLはデータ品質のルールを定義するための言語です。
Glue Data Qualityでは、DQDLを使用して「ルールセット」(データのチェック内容)を作成し、
Glueのテーブルに対してタスクを実行することで、データレイクに保存されているデータの品質を検査します。
DQDLルール定義の方法
DQDLの定義方法は以下の例の通りになります。
※大文字、小文字は区別されます。
Rules = [ IsComplete "order-id",
IsUnique "order-id" ]
※ルールが複数ある場合はカンマで区切って定義。
DQDLで定義可能なルールの例
DQDLは定義可能なルールタイプが約20種類あります。
詳細:https://docs.aws.amazon.com/glue/latest/dg/dqdl.html
一部の例が以下の通りになります。
Rules = [ColumnExists “列名" ]
Rules = [ColumnLength “列名" = 5]
Rules = [IsPrimaryKey “列名" ]
Deequ
Deequとは、Amazonで開発・利用されているオープンソースツールのことです。
大規模なデータの品質をテストすることができます。
主な機能としては、以下の3点が挙げられます。
・メトリクスの計算
⇒Amazon S3 などのソースから読み取り、完全性・最大値・相関などの統計を計算する
・制約の検証
⇒指定した制約の検証を実施し、結果を生成する
・制約の提案
⇒データ品質制約の提案、有用な制約を推測するなど、制約作成のサポートを行う。
引用元:https://aws.amazon.com/jp/blogs/news/test-data-quality-at-scale-with-deequ/
Glue Data Quality(プレビュー版)の仕様について
・Glue3.0 のみ対応
・データソースは S3 のみ利用可能
・利用可能なリージョン
- バージニア北部(us-east-1)
- オハイオ(us-east-2)
- オレゴン(us-west-1)
- 東京(ap-northeast-1)
- アイルランド(eu-west-1)
・料金はETLジョブの実行に費やした時間に対して課金(Glue jobと同様)
※リソースの管理費用や初期費用は不要。
スタートアップ時間やシャットダウン時間も課金されない。
まとめ
今回の記事では、AWS Glue Data Quality(プレビュー版)の概要について紹介いたしました。
Glue Data Qualityはデータの品質を検査する機能となります。
今までDeequをインストール・セットアップしたり、
コードを手作業で作成してデータを検査していましたが、
Glue Data Qualityを利用することでその手間を省くことができます。
現在のところ色々と制限(Glue3.0のみ対応、S3のみ対応等)はありますが、
今後のGAに期待しつつ、使い倒していこうと思います。
次回の記事について
次回の記事は下記の2点の検証について紹介いたします。
① ELTジョブ内でData Qualityの品質検査の実施と
Data Qualityのルール違反をAWS CloudWatchで通知
② Python処理との実行時間の比較