データウェアハウス

分析用に最適化された大規模データストアで、複数のデータソースを統合して意思決定を支援する

データ分析アーキテクチャ

データウェアハウスとは

データウェアハウス (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

データウェアハウスの関連書籍も参考になる。

関連用語