ETL とは?
ETL = Extract(抽出) → Transform(変換) → Load(格納) の略
データ分析の準備段階でよく出てくる処理
データを「そのままでは分析できない状態」から「使える状態」に整える作業
-
Extract(抽出)
- データをいろんなソース(DB、ログ、S3、ストリーミングなど)から取り出す
-
Transform(変換)
- データをクレンジング(不要項目除去、フォーマット統一、型変換)
- 必要に応じて集計・結合
-
Load(格納)
- DWH(Redshift)やデータレイク(S3)、分析基盤(Athena, OpenSearchなど)に格納
AWS Glue とは
- サーバーレスの ETL サービス
- データカタログを自動作成し、スキーマを推測して管理
- Python(PySpark)ベースのETLジョブを自動生成して実行できる
主な機能
-
Glue Data Catalog
- データのスキーマを管理する「メタデータカタログ」
- AthenaやRedshift Spectrumから利用可能
-
Glue Crawler
- S3やDBをスキャンし、自動的にスキーマを推測・登録
- 「このS3バケットの中身はParquet形式で、このカラムは文字列」といった情報を自動検出
-
Glue Job
- PySparkベースでETL処理を実行
- GUIベースのETLエディタ(Studio)もあり
-
Glue DataBrew
- ノーコードでデータのクレンジングや前処理を行えるツール
-
Glue Streaming ETL
- KinesisやKafkaのストリーミングデータを処理可能
ユースケース
-
データレイク基盤(S3)+ Athena
→ Glue Crawlerでスキーマを登録し、AthenaでSQL分析 -
ETL → Redshift
→ ログやRDSデータをクレンジングしてRedshiftにロード -
ログデータの統合
→ CloudTrail / VPCフローログを集約して加工
ポイント
- Glue = サーバーレスETLサービス
- データカタログを作り、AthenaやRedshift Spectrumで利用可能
- スキーマ推測は Glue Crawler
- ETL処理は Glue Job(PySpark)
- 簡単なデータ整形は DataBrew
- ストリーミングETLも可能