データウェアハウス
データウェアハウスとは
データウェアハウス(DWH)は、分析のために大量のデータを集約して保存する専用データベースです。「倉庫(warehouse)」の名の通り、業務システムのデータベースや各種サービスからデータを集め、集計・分析しやすい形で蓄積します。
日々の取引を処理する業務データベースと、「过去3年の売上を地域別・月別に集計する」ような分析は求められる性質が違います。この違いを整理した考え方が [[OLTPとOLAP]] で、DWH は OLAP(分析)側の代表的な受け皿です。
列指向ストレージ — 速さの秘密
DWH の多くは列指向(カラムナ)という保存方式を採用しています。
| 行指向(業務DB) | 列指向(DWH) | |
|---|---|---|
| 保存単位 | 1行をまとめて保存 | 1列をまとめて保存 |
| 得意な処理 | 1件の読み書き | 特定の列の大量集計 |
| 例 | 注文1件の登録・照会 | 全注文の金額列だけを合計 |
「売上金額の列だけを1億行分読む」ような集計では、必要な列だけを読めばよい列指向が圧倒的に有利です。同じ値が並びやすいため圧縮も効きます。
代表的な製品とデータの流れ
- クラウドDWH: BigQuery(Google)、Snowflake、Amazon 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 に集約されます。