データウェアハウス

データウェアハウスとは

データウェアハウス(DWH)は、分析のために大量のデータを集約して保存する専用データベースです。「倉庫(warehouse)」の名の通り、業務システムのデータベースや各種サービスからデータを集め、集計・分析しやすい形で蓄積します。

日々の取引を処理する業務データベースと、「过去3年の売上を地域別・月別に集計する」ような分析は求められる性質が違います。この違いを整理した考え方が [[OLTPとOLAP]] で、DWH は OLAP(分析)側の代表的な受け皿です。

列指向ストレージ — 速さの秘密

DWH の多くは列指向(カラムナ)という保存方式を採用しています。

行指向(業務DB)列指向(DWH)
保存単位1行をまとめて保存1列をまとめて保存
得意な処理1件の読み書き特定の列の大量集計
注文1件の登録・照会全注文の金額列だけを合計

「売上金額の列だけを1億行分読む」ような集計では、必要な列だけを読めばよい列指向が圧倒的に有利です。同じ値が並びやすいため圧縮も効きます。

代表的な製品とデータの流れ

  • クラウドDWH: BigQuery(Google)、SnowflakeAmazon Redshift が三大どころ。サーバー管理不要で [[SQL]] で分析できる
  • データは [[データパイプライン・ETL]] によって業務DBや外部サービスから定期的に集約される
  • BIツール(ダッシュボード)が DWH に接続し、経営指標やKPIを可視化する
業務DB・ログ・外部サービス → ETL/ELT → DWH → BIツール・分析SQL

初学者向けポイント

  • DWH は基本的に追記中心で、1行単位の頻繁な更新は苦手 — 業務DBの置き換えではない
  • 問い合わせは使い慣れた [[SQL]] がほぼそのまま使える — 分析エンジニアへの第一歩は SQL の集計(GROUP BY、ウィンドウ関数)の習熟
  • クラウドDWH は読んだデータ量やコンピュート時間で課金されるものが多い — SELECT * を巨大テーブルに打たない、が財布を守る鉄則
  • 近年は DWH とデータレイクの融合(レイクハウス)も進んでいるが、まず「分析専用の倉庫」という基本を押さえれば十分

関連技術とのつながり

  • [[OLTPとOLAP]] — DWH が担う「分析(OLAP)」の位置づけを整理する概念
  • [[データパイプライン・ETL]] — DWH へデータを集める運搬役
  • [[SQL]] — DWH の主要な問い合わせ手段
  • [[リレーショナルデータベース]] — 業務データの発生源であり対比の対象
Q: データウェアハウスの主な目的はどれ?
- [ ] 日々の取引を1件ずつ高速に処理する
- [x] 分析のために大量のデータを集約して保存する
- [ ] アプリケーションのセッション情報を保持する
解説: DWH は業務システム等からデータを集め、集計・分析しやすい形で蓄積する分析専用データベースです。

Q: 列指向ストレージが集計に強い理由はどれ?
- [x] 集計に必要な列だけをまとめて読めるから
- [ ] すべての行を必ずメモリに置くから
- [ ] インデックスが不要になるから
解説: 列単位で保存するため「金額列だけ読む」ような集計で読み取り量を大幅に減らせ、圧縮も効きます。

Q: DWH にデータを集める役割を担うのはどれ?
- [ ] BIツール
- [ ] コネクションプール
- [x] データパイプライン(ETL)
解説: 業務DBや外部サービスからのデータは ETL/ELT のパイプラインで DWH に集約されます。