OLAP vs OLTP

オンライン分析処理 (OLAP) とオンライントランザクション処理 (OLTP) の違いと使い分け

データベースデータ分析

OLAP vs OLTP とは

OLTP (Online Transaction Processing) はリアルタイムのトランザクション処理、OLAP (Online Analytical Processing) は大量データの分析処理である。用途に応じて異なるデータベースを選択する。

比較

観点 OLTP OLAP
目的 トランザクション処理 データ分析
クエリ 単純 (1 行の CRUD) 複雑 (集計、JOIN)
データ量 GB〜TB TB〜PB
レイテンシ ミリ秒 秒〜分
ストレージ 行指向 列指向
正規化 正規化 (3NF) 非正規化 (スタースキーマ)
AWS DynamoDB, Aurora Redshift, Athena

AWS でのデータフロー

OLTP (DynamoDB)
  ↓ DynamoDB Streams → Lambda → S3 (Parquet)
OLAP (Athena / Redshift)
  ↓ クエリ結果
BI ダッシュボード (QuickSight)

OLTP の例 (DynamoDB)

// 1 件の注文を取得 (ミリ秒)
await db.get({ TableName: 'orders', Key: { id: '123' } });

OLAP の例 (Athena)

-- 月別の売上集計 (秒〜分)
SELECT DATE_TRUNC('month', order_date) AS month, SUM(amount) AS total
FROM orders
GROUP BY 1
ORDER BY 1;

いつどちらを使うか

ケース 推奨
ユーザーの注文処理 OLTP (DynamoDB)
月次売上レポート OLAP (Athena + Parquet)
リアルタイムダッシュボード OLTP + キャッシュ
アドホック分析 OLAP (Redshift)

現場での応用を知るには関連書籍も役立つ。

関連用語