データベース基本概念

OLTP・OLAP おーえるてぃーぴー・おーえるえーぴー

トランザクション処理分析処理データウェアハウスBI列指向行指向
OLTP・OLAPについて教えて

簡単に言うとこんな感じ!

OLTPは「レジの処理」、OLAPは「店長の売上分析」みたいなイメージだよ!OLTPは「注文を登録する・在庫を引く」みたいに小さくて速いトランザクションを大量にこなすのが得意。OLAPは「先月の商品カテゴリ別売上を集計する」みたいに大量データをまとめて分析するのが得意。全然違う処理なんだ!


OLTP・OLAPとは

OLTP(Online Transaction Processing)とは、業務システムが日々行う「注文登録・在庫更新・決済処理」などの小さなトランザクションを高速にこなすためのデータ処理モデルです。1秒間に数百〜数万件のリクエストを処理し、応答時間はミリ秒レベルが求められます。RDBが典型的なOLTPシステムです。

OLAP(Online Analytical Processing)とは、「過去1年の商品別・地域別売上トレンド」のような大量データを複数の軸で集計・分析するための処理モデルです。数億〜数十億行のデータをスキャンすることもあり、クエリ1本の実行時間は秒〜分単位になります。データウェアハウス・BIツールが典型的なOLAP環境です。

OLTPとOLAPは最適なDB設計が根本的に異なります。OLTPは行単位での更新が多いため「行指向ストレージ」が適し、OLAPは特定カラムの大量集計が多いため「列指向ストレージ」が適します。そのため多くの企業は「業務DB(OLTP)→ETL→データウェアハウス(OLAP)」という構成を取ります。


OLTP vs OLAP 比較表

観点OLTPOLAP
主な処理INSERT・UPDATE・DELETESELECT(大量集計)
1クエリの対象行数数件〜数十件数百万〜数十億行
応答時間ミリ秒秒〜分
同時接続数数百〜数万数人〜数十人
データ更新頻度リアルタイムバッチ(日次等)
ストレージ形式行指向列指向
正規化高度に正規化非正規化(スタースキーマ
代表製品MySQL・PostgreSQL・OracleBigQuery・Redshift・Snowflake
OLTPとOLAPのシステム構成 ECサイト 注文・在庫・決済 ERPシステム 人事・会計・購買 CRMシステム 顧客・案件・活動 OLTP DB MySQL / PostgreSQL 行指向・正規化 ミリ秒応答 ACID保証 業務処理の実行 ETL / ELT 抽出・変換・ ロード(日次等) OLAP / DWH BigQuery / Snowflake 列指向・非正規化 大量集計が得意 結果整合性OK 経営分析・BI BIツール Tableau / Looker / Power BI

歴史と背景

  • 1970年代:OLTPという概念はIBMのCICS(Customer Information Control System)とともに誕生
  • 1993年:E.F.コッドがOLAP(OnLine Analytical Processing)の12のルールを定義
  • 1996年:Ralph KimballがDWH設計のスタースキーマ手法を体系化
  • 2000年代:Hyperion・BusinessObjectsなどのOLAP専用ツールが企業に普及
  • 2010年:Google BigQueryが登場。クラウドベースOLAPが一般化
  • 2014年:Snowflakeが登場。OLTP・OLAP双方に対応するHTAPの概念も広まる
  • 現在:「HTAP(Hybrid Transaction/Analytical Processing)」として1システムで両方を担うDBも増加

関連する規格・RFC

規格・RFC番号内容
E.F.コッド「OLAPの12ルール」(1993)OLAPシステムの評価基準
MDX (Multidimensional Expressions)OLAPキューブへの問い合わせ言語

関連用語