Slide 1

Slide 1 text

データの品質を管理する AWS Glue Data Quality 自動でデータの品質ルール作成 2023/07/29 第25回勉強会

Slide 2

Slide 2 text

自己紹介 ● 名前: 西岡 賢一郎 ○ Twitter: @ken_nishi ○ note: 西岡賢一郎@研究者から経営者へ (https://note.com/kenichiro) ○ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル (https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg) ● 経歴 ○ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得 ○ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社ト ライディアを設立 ○ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職 ○ CDPのスタートアップ (Sr. PdM)・株式会社データインフォームド (CEO)・株式会社ディース タッツ (CTO) ○ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験

Slide 3

Slide 3 text

本日のお話 ● データの品質管理 ● AWS Glue Data Quality ● Data Quality Development Language (DQDL) ● デモ

Slide 4

Slide 4 text

データの品質管理

Slide 5

Slide 5 text

データの品質管理 ● データは現代のビジネスにおいて非常に重要な役割となっている ● 正確なデータ分析を行うためには、高品質なデータが必要 ● 不正確なデータや不完全なデータは、誤った結果や混乱を招き、結果的にビ ジネス上の意思決定に悪影響を及ぼす可能性がある 不正なデータ 誤った意思決定につながる

Slide 6

Slide 6 text

データの品質管理の難しさ データの品質管理は、一見単純なようで、実は非常に難しい ● 大量のデータ: 毎日膨大な量のデータが生成されるため、それら全てのデータを適 切に管理し、品質を維持しなければならない。 ● データの多様性: 取り扱うデータは、形式(テキスト、数値、日付など)やソース (内部システム、3rd Partyデータなど)が異なるため、一貫した品質管理が難し い。 ● データの変動: データは常に変動し続けており、新しいデータが継続的に生成され る。さらに、データの形式や構造が時間とともに変わることもある。 ● エラーの検出と修正: データの品質に問題があると判断された場合、その問題を修 正するためには、手間と時間がかかることが多い。 ● リソース: データ品質管理には専門的な知識とスキルが必要。また、適切なツール やリソースがなければ、データの品質管理を効率的に行うことが難しい。

Slide 7

Slide 7 text

AWS Data Quality

Slide 8

Slide 8 text

AWS Glue Data Qualityの機能と利点 ● 2022年末に発表 ● データの品質を自動で管理し、信頼性のあるデータ分析を可能にするサービ ス ● 主な機能 ○ データを探索し、品質問題を分析する機能を提供 ○ データ品質ルールを自動的に生成 ○ 生成されたルールに基づいてデータ品質チェックを自動的に実行

Slide 9

Slide 9 text

AWS Glue Data Qualityの流れ 1. データセットの準備: 品質チェックを行いたいデータセットをS3などに用意。 2. Glueカタログの設定: Glue Data Catalogでデータソースとデータセットのスキーマ(データの構造や型)に関する情報を 定義。 3. DQDLスクリプトの作成: Data Quality Development Language(DQDL)を使用して、データ品質チェックのルールを定 義するスクリプトを作成。 4. データ品質ジョブの実行: 定義したDQDLスクリプトを使用してデータ品質ジョブを実行。AWS Glueジョブとしてスケ ジュールも可能。 5. 結果の確認: データ品質ジョブが完了すると、結果はAmazon S3バケットに保存されます。これにより、データの品質に関 する詳細な情報を確認することができます。 6. アクションの実行: 結果に基づいてデータの修正や、さらなる分析のためのアクションを実行。

Slide 10

Slide 10 text

Glue Data Qualityへのアクセス Glue TableやVisual ETLにもData qualityタブが追加

Slide 11

Slide 11 text

自動品質ルール生成 ● データをスキャンして、自動的に品質ルールを作成 ● 自動品質ルールの作成・適用方法 ○ AWS Glue > Tables 品質ルールをつけたい テーブルを選択 ○ Data Quality TabからCreate data quality rulesからルール作成 ○ Insert rule recommendationsから必要な品 質ルールを選択

Slide 12

Slide 12 text

Data Quality Development Language (DQDL)

Slide 13

Slide 13 text

Data Quality Development Language (DQDL) ● DQDL (Data Quality Development Language) は、AWS Glue Data Quality で使用される専用の言語 ● データ品質ルールを定義するために使用 ● DQDLで定義するデータ品質ルールは、テーブル、列、またはテーブルの列 間の制約に適用 ● nullの確認、重複の確認、値の範囲の確認などができる ● ルールの構造: ○ Mean "colA" between 80 and 100 ○ (IsComplete "id") and (IsUnique "id") ● https://docs.aws.amazon.com/glue/latest/dg/dqdl.html

Slide 14

Slide 14 text

DQDLのExpression 比較演算子に加え、between, in, 正規表現, date処理用のexpressionなどがある ● Completeness "colA" = 1.0 ● ColumnValues "colA" > 10 ● Mean "colA" between 8 and 100 ● ColumnValues "colA" in [ 1, 2, 3 ] ● ColumnValues "colA" matches "[a-ZA-Z]*" ● ColumnValues "load_date" > (now() - 3 days)

Slide 15

Slide 15 text

DQDLのRuleType よく使われそうなシンプルなRuleType ● ColumnLength: データの長さが一貫しているかどうかをチェック ColumnLength "Postal_Code" = 5 ● ColumnNamesMatchPattern: 列名が定義されたパターンに一致するかどうかをチェック ColumnNamesMatchPattern "aws_.*" ● ColumnValues: データが定義された値に一致しているかどうかをチェック ColumnValues "First_Name" matches "[a-ZA-Z]*" ● Completeness: データに空白または NULL があるかどうかをチェック Completeness "First_Name" > 0.95 ● DistinctValuesCount: 値の重複をチェック DistinctValuesCount "State" > 3 ● IsComplete: データが 100% 完全であるかどうかをチェック IsComplete "email" ● IsUnique: データの100%が一意かどうかをチェック IsUnique "email" ● Mean: 平均が設定されたしきい値に一致するかどうかをチェック Mean "Star_Rating" > 3

Slide 16

Slide 16 text

DQDLのRuleType 少し複雑なRuleType ● AggregateMatch: 2つのカラムの集約結果をチェック (AggregateMatch "avg(ratings)" "avg(reference.ratings)" >= 0.9) ● CustomSql: SQLによるデータのチェック (CustomSql "select count(*) from primary" between 10 and 20) ● ReferentialIntegrity: 値が参照データセットの列の値のサブセットであるか どうかをチェック (eferentialIntegrity "city,state" "reference.{ref_city,ref_state}" = 1.0)

Slide 17

Slide 17 text

デモ ● AWS Glue Data Qualityの探し方 ● 自動品質ルール作成 ● 手動で品質ルール設定 ● Visual ETLでの組み込み