Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データの品質を管理するAWS Glue Data Quality
Search
西岡 賢一郎 (Kenichiro Nishioka)
July 29, 2023
Technology
0
71
データの品質を管理するAWS Glue Data Quality
機械学習の社会実装勉強会第25回 (
https://machine-learning-workshop.connpass.com/event/289938/
) の発表資料です。
西岡 賢一郎 (Kenichiro Nishioka)
July 29, 2023
Tweet
Share
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
LangGraphでマルチエージェントワークフローを構築
knishioka
0
12
LLMアプリケーションで使用するVector Databaseの比較
knishioka
0
140
LLMアプリケーションの デバッグ・テスト・評価・監視を楽にするLangSmith
knishioka
0
130
LangChainから学ぶプロンプトエンジニアリングテクニック
knishioka
0
140
チャット履歴と質問を組み合わせLLMの回答精度を高めるLangChain Conversational Retrieval QA
knishioka
0
410
LangChain RetrievalQAとChatGPTでQAツールを作る
knishioka
1
360
LangChainのDocument機能を使って文書処理を柔軟にする
knishioka
0
620
LangChain Agentを使って自社ツールとChatGPTを連携
knishioka
0
290
LLMを使ったサービス開発必須ライブリ 「LangChain」の基礎
knishioka
0
130
Other Decks in Technology
See All in Technology
Grafana x PagerDuty Better Together
jacopen
1
260
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
180
BPStudyの200回を中心にIT業界を振り返る。そしてこれから
haru860
3
400
アクセス制御にまつわる改善 / Improving access control
itkq
0
590
競技としてのKaggle、役に立つKaggle
yu4u
6
2.3k
M5stackで使用できるpHセンサの開発
shinrinakamura
0
120
Azureの基本的な権限管理の勉強会
yhana
1
2.1k
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
1k
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
160
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
8
620
EM完全に理解した と思ったけど、 やっぱり何も分からなかった話 / EM Night Fukuoka #1
hirutas
0
280
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
140
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
36
2.1k
How to name files
jennybc
65
93k
From Idea to $5000 a Month in 5 Months
shpigford
378
45k
Web Components: a chance to create the future
zenorocha
306
41k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
Done Done
chrislema
178
15k
Six Lessons from altMBA
skipperchong
22
3k
Product Roadmaps are Hard
iamctodd
45
9.7k
KATA
mclloyd
16
12k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
21
1.4k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
19
6.9k
Transcript
データの品質を管理する AWS Glue Data Quality 自動でデータの品質ルール作成 2023/07/29 第25回勉強会
自己紹介 • 名前: 西岡 賢一郎 ◦ 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) ◦ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
本日のお話 • データの品質管理 • AWS Glue Data Quality • Data
Quality Development Language (DQDL) • デモ
データの品質管理
データの品質管理 • データは現代のビジネスにおいて非常に重要な役割となっている • 正確なデータ分析を行うためには、高品質なデータが必要 • 不正確なデータや不完全なデータは、誤った結果や混乱を招き、結果的にビ ジネス上の意思決定に悪影響を及ぼす可能性がある 不正なデータ 誤った意思決定につながる
データの品質管理の難しさ データの品質管理は、一見単純なようで、実は非常に難しい • 大量のデータ: 毎日膨大な量のデータが生成されるため、それら全てのデータを適 切に管理し、品質を維持しなければならない。 • データの多様性: 取り扱うデータは、形式(テキスト、数値、日付など)やソース (内部システム、3rd
Partyデータなど)が異なるため、一貫した品質管理が難し い。 • データの変動: データは常に変動し続けており、新しいデータが継続的に生成され る。さらに、データの形式や構造が時間とともに変わることもある。 • エラーの検出と修正: データの品質に問題があると判断された場合、その問題を修 正するためには、手間と時間がかかることが多い。 • リソース: データ品質管理には専門的な知識とスキルが必要。また、適切なツール やリソースがなければ、データの品質管理を効率的に行うことが難しい。
AWS Data Quality
AWS Glue Data Qualityの機能と利点 • 2022年末に発表 • データの品質を自動で管理し、信頼性のあるデータ分析を可能にするサービ ス •
主な機能 ◦ データを探索し、品質問題を分析する機能を提供 ◦ データ品質ルールを自動的に生成 ◦ 生成されたルールに基づいてデータ品質チェックを自動的に実行
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. アクションの実行: 結果に基づいてデータの修正や、さらなる分析のためのアクションを実行。
Glue Data Qualityへのアクセス Glue TableやVisual ETLにもData qualityタブが追加
自動品質ルール生成 • データをスキャンして、自動的に品質ルールを作成 • 自動品質ルールの作成・適用方法 ◦ AWS Glue > Tables
品質ルールをつけたい テーブルを選択 ◦ Data Quality TabからCreate data quality rulesからルール作成 ◦ Insert rule recommendationsから必要な品 質ルールを選択
Data Quality Development Language (DQDL)
Data Quality Development Language (DQDL) • DQDL (Data Quality Development
Language) は、AWS Glue Data Quality で使用される専用の言語 • データ品質ルールを定義するために使用 • DQDLで定義するデータ品質ルールは、テーブル、列、またはテーブルの列 間の制約に適用 • nullの確認、重複の確認、値の範囲の確認などができる • ルールの構造: <RuleType> <Parameter> <Parameter> <Expression> ◦ Mean "colA" between 80 and 100 ◦ (IsComplete "id") and (IsUnique "id") • https://docs.aws.amazon.com/glue/latest/dg/dqdl.html
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)
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
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)
デモ • AWS Glue Data Qualityの探し方 • 自動品質ルール作成 • 手動で品質ルール設定
• Visual ETLでの組み込み