ETL
データを抽出 (Extract)、変換 (Transform)、ロード (Load) するデータパイプライン
ETL とは
ETL は、データソースからデータを抽出 (Extract)、ビジネスロジックに合わせて変換 (Transform)、データウェアハウスにロード (Load) するデータパイプラインである。
ETL の 3 ステップ
ETL の 3 ステップを図で示す。
[Extract] [Transform] [Load]
DynamoDB → 集計・フィルタ → Redshift
S3 (CSV) → 型変換・結合 → S3 (Parquet)
RDS → クレンジング → OpenSearch
外部 API → 正規化 → DynamoDB
ETL vs ELT
ETL と ELT の違いを以下にまとめる。
| 観点 | ETL | ELT |
|---|---|---|
| 変換の場所 | パイプライン内 | ロード先の DWH |
| 適用 | 構造化データ | 大量の生データ |
| ツール | Glue, Lambda | Redshift, Athena |
| 柔軟性 | 変換ロジックを事前定義 | ロード後に自由に変換 |
AWS Glue
AWS Glue のコード例を示す。
# Glue ETL ジョブ (PySpark)
from awsglue.context import GlueContext
glueContext = GlueContext(SparkContext.getOrCreate())
# Extract: S3 から CSV を読み込み
source = glueContext.create_dynamic_frame.from_catalog(
database="mydb", table_name="raw_orders"
)
# Transform: 不要なカラムを削除、型を変換
transformed = source.drop_fields(["temp_col"]).resolveChoice(
specs=[("price", "cast:double")]
)
# Load: S3 に Parquet で書き出し
glueContext.write_dynamic_frame.from_options(
transformed, connection_type="s3",
connection_options={"path": "s3://bucket/processed/"},
format="parquet"
)
サーバーレス ETL
サーバーレス ETL を以下にまとめる。
| パターン | 構成 |
|---|---|
| 小規模 | S3 → Lambda → DynamoDB |
| 中規模 | S3 → Step Functions → Lambda → S3 |
| 大規模 | S3 → Glue ETL → Redshift |
ETL の品質管理
ETL パイプラインでは、入力と出力のレコード数が一致するか、必須カラムに NULL が含まれていないか、数値カラムに文字列が混入していないか、主キーに重複がないかを検証する。これらのチェックを自動化し、異常を検知したらパイプラインを停止してアラートを発報する。
体系的に学ぶなら関連書籍を参照してほしい。
この記事は役に立ちましたか?
関連用語
データレイク
構造化・非構造化データを生の形式で大量に保存し、後から分析・加工するストレージ基盤
Redshift
AWS のペタバイト規模のデータウェアハウスサービスで、大量データの分析クエリを高速に実行する
Change Data Capture
データベースの変更をリアルタイムに検出し、下流システムに伝播させるデータ統合パターン
AWS Glue
AWS のサーバーレス ETL サービスで、データの抽出・変換・ロードとデータカタログ管理を提供する
データウェアハウス
分析用に最適化された大規模データストアで、複数のデータソースを統合して意思決定を支援する
AWS Copilot
コンテナアプリケーションを ECS / Fargate に簡単にデプロイするための AWS CLI ツール
関連する記事
技術書の読む順番戦略 - 複数冊を組み合わせて理解を加速させる
技術書を 1 冊ずつ読むのではなく、複数冊を戦略的に組み合わせることで理解の深さと速度を飛躍的に高める方法を解説します。
データベース本ガイド - SQL から設計まで学べる技術書の選び方
データベースの基礎から設計、パフォーマンスチューニングまで学べる技術書の選び方と学習順序を紹介します。
機械学習・AI 本ガイド - エンジニアが読むべき技術書の選び方
機械学習の基礎から実践まで学べる技術書の選び方を紹介。「Python ではじめる機械学習」などのハンズオン本を軸に、数学が苦手な人向けの学習ルートと ML 本の賞味期限の見極め方を解説します。