0
0

More than 1 year has passed since last update.

Glue Data Quality(プレビュー版)について①

Last updated at Posted at 2023-02-14
1 / 10

はじめに

こんにちは。株式会社ジールの@Shin-Nakamura224です。
先日、Glue Data Quality(プレビュー版)が発表されたので、
概要と簡単な検証を紹介したいと思います。
今回の記事はGlue Data Qualityの概要について紹介いたします。

検証 ↓
Glue Data Quality(プレビュー版)について②


概要

Glue Data Qualityとは

AWS Glueでデータの品質検査(問題の検出)を簡単に実施できる機能になります。
(2022年11月30日​発表)
ユーザは品質評価のルール(DQDL)を設定して、データの品質検査を実施することが可能​です。
Amazonが開発したOSSのDeequを使用してルールを評価します。
image.png
引用元: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の定義方法は以下の例の通りになります。
※大文字、小文字は区別されます。

例:「order-id」列の値がすべて非NULLであるか, 「order-id」列の値がすべて一意であるか
Rules = [ IsComplete "order-id", 
          IsUnique "order-id" ] 
※ルールが複数ある場合はカンマで区切って定義。

DQDLで定義可能なルールの例

DQDLは定義可能なルールタイプが約20種類あります。
詳細:https://docs.aws.amazon.com/glue/latest/dg/dqdl.html

一部の例が以下の通りになります。

ColumnExists:カラムが存在するかチェック
Rules = [ColumnExists “列名" ] 
ColumnLength:値の長さが指定した数値と合致するかをチェック
Rules = [ColumnLength “列名" = 5] 
IsPrimaryKey:対象カラムが主キーを含むか(カラムの値がすべて一意であるか)をチェック
Rules = [IsPrimaryKey “列名" ]

Deequ

Deequとは、Amazonで開発・利用されているオープンソースツールのことです。
大規模なデータの品質をテストすることができます。
主な機能としては、以下の3点が挙げられます。
・メトリクスの計算
⇒Amazon S3 などのソースから読み取り、完全性・最大値・相関などの統計を計算する
・制約の検証
⇒指定した制約の検証を実施し、結果を生成する
・制約の提案
⇒データ品質制約の提案、有用な制約を推測するなど、制約作成のサポートを行う。
image.png

引用元: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処理との実行時間の比較

Glue Data Quality(プレビュー版)について②

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0