本章では、システムで扱うデータを収集・加工・保存・活用するためのデータ基盤の設計を学ぶ。
ETL処理とストリーム処理の違いを理解し、 リアルタイム性とスケーラビリティを兼ね備えたデータパイプラインを設計できる力を身につけることを目的とする。
1. データ基盤とは
データ基盤は、データを効率的に収集・加工・蓄積し、 分析やアプリケーションで活用するための仕組みである。
- データ収集(Ingestion)
- データ加工(Processing)
- データ保存(Storage)
- データ活用(Analytics / ML)
現代のシステムでは、データ基盤がビジネス価値の中核を担う。
2. ETL(Extract / Transform / Load)
ETLは、データ処理の基本パイプラインである。
■ Extract(抽出)
- データベースやログからデータ取得
■ Transform(変換)
- データクレンジング
- フォーマット統一
- 集計処理
■ Load(格納)
- データウェアハウス(DWH)へ保存
バッチ処理として定期実行されることが多い。
3. ELTとの違い
近年では、ETLではなくELT(Extract / Load / Transform)が主流になりつつある。
- 先にデータを保存
- 後から必要に応じて変換
クラウドDWHの性能向上により、柔軟なデータ活用が可能となった。
4. ストリーム処理(リアルタイム処理)
ストリーム処理は、データをリアルタイムで処理する方式である。
- イベント駆動型
- 低レイテンシ
- リアルタイム分析に適用
■ 代表的な用途
- ログ分析
- 不正検知
- リアルタイムレコメンド
バッチ処理との違いは「処理タイミング」にある。
5. データストレージの種類
■ データウェアハウス(DWH)
- 分析用データ保存
- 構造化データに強い
■ データレイク
- 生データをそのまま保存
- 非構造データにも対応
■ OLTP / OLAP
- OLTP:トランザクション処理
- OLAP:分析処理
用途に応じて適切に使い分けることが重要である。
6. データパイプライン設計
データパイプラインは、データの流れを自動化する仕組みである。
- スケーラブルな設計
- 再実行可能(Idempotent)
- エラー耐性
重要な要素:
- スケジューリング(定期実行)
- 依存関係管理
- 監視とアラート
7. データ品質とガバナンス
データ基盤では、品質管理が非常に重要となる。
- データの正確性
- 欠損値の管理
- スキーマ管理
また、データの利用ルールを定めるガバナンスも必要である。
8. 実務における設計指針
- バッチ処理とストリーム処理の使い分け
- スケーラブルなストレージ設計
- データの再利用性を高める
- 監視と品質管理を組み込む
データ基盤は「作って終わり」ではなく、 継続的に改善されるべきシステムである。
まとめ
本章では、データ基盤の基本構造を理解した。
- ETL/ELTでデータ処理を構築
- ストリーム処理でリアルタイム化
- DWHとデータレイクを使い分け
- パイプラインで自動化
- 品質とガバナンスを確保
これにより、データを価値に変換する基盤を設計できるようになる。