データウェアハウス
分析用に最適化された大規模データストアで、複数のデータソースを統合して意思決定を支援する
データ分析アーキテクチャ
データウェアハウスとは
データウェアハウス (DWH) は、分析用に最適化された大規模データストアで、複数のデータソース (業務 DB、ログ、外部データ) を統合し、BI (Business Intelligence) や意思決定を支援する。OLTP (業務処理) 用の DB とは異なり、OLAP (分析処理) に特化している。
OLTP vs OLAP
| 観点 | OLTP (業務 DB) | OLAP (DWH) |
|---|---|---|
| 用途 | 注文処理、ユーザー管理 | 売上分析、レポート |
| クエリ | 単一行の CRUD | 大量データの集計 |
| データモデル | 正規化 (3NF) | 非正規化 (スタースキーマ) |
| レイテンシ | ミリ秒 | 秒〜分 |
| データ量 | GB〜TB | TB〜PB |
| AWS サービス | RDS, DynamoDB | Redshift, Athena |
スタースキーマ
DWH ではスタースキーマ (ファクトテーブル + ディメンションテーブル) でデータをモデリングする。
[日付ディメンション]
|
[商品ディメンション] ← [売上ファクト] → [顧客ディメンション]
|
[店舗ディメンション]
ファクトテーブルに数値データ (売上金額、数量)、ディメンションテーブルに属性データ (商品名、顧客名) を格納する。
ETL パイプライン
[データソース] → Extract → Transform → Load → [DWH]
DynamoDB ─┐
RDS ─┤→ Glue (ETL) → S3 (データレイク) → Redshift (DWH)
CloudWatch ─┘ → Athena (アドホック分析)
Extract (データソースから抽出) には DMS や Glue、Transform (クレンジング、変換、集計) には Glue や Lambda、Load (DWH にロード) には Redshift COPY や Firehose を使用する。
AWS での DWH 選択
定常的な分析ワークロードにはノード時間課金の Redshift、可変ワークロードには RPU 課金の Redshift Serverless、アドホッククエリにはスキャンデータ量課金の Athena、データレイク分析には Athena + S3 が適している。少量・低頻度なら Athena + S3、大量・高頻度なら Redshift。
データレイクとの違い
| 観点 | データウェアハウス | データレイク |
|---|---|---|
| データ形式 | 構造化 (スキーマ定義済み) | 構造化 + 非構造化 (生データ) |
| スキーマ | Schema-on-Write | Schema-on-Read |
| 用途 | BI、定型レポート | 機械学習、探索的分析 |
| AWS | Redshift | S3 + Glue + Athena |
データウェアハウスの関連書籍も参考になる。