OLTPとOLAPの違いとは? ~データベースの使用用途による違い~|データ分析用語を解説

AUTHOR :   ギックス

本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)

データベースに求める処理性能は大量アクセス? それとも大量データ?

データベースと言っても様々な種類があり、表形式のテーブルを使った構造化データのリレーショナルデータベース。それ以外のJSONやXMLなどを使った非構造化データのNoSQLデータベースがあります。これらと違うデータベース分類視点として”OLTP”と”OLAP”というものがあります。今回はこの2つの違いについて説明したいと思います。

OLTP(オンライントランザクション処理)データベースとは

OLTP(Online Transaction Processing)データベースとは、トランザクション処理を行うことを目的としたデータベースです。トランザクション(Transaction)には2つの意味はあり、英語直訳の「商取引」と、技術用語で「データの一貫性を保つためのデータベースのトランザクション機能」があります。
このOLTPデータベースは、日々増えてくデータを確実に登録し、小さいサイズのデータ取得依頼に対し迅速に応える事に特化しています。また、大量に発生する読書きアクセスに対して同時で実行する機能を持っています。一般的なECサイトやソーシャルゲーム、社内システムではOLTPデータベースであることが多く、データベースの商品名ではORACLEデータベースなどが有名です。

OLAP(オンライン分析処理)データベースとは

OLAP(Online Analytical Processing)データベースとは、分析処理を行うことを目的としたデータベースです。分析処理とは複数のテーブルなどの情報を繋げ、集計などの分析を行う事です。
OLAPデータベースはOLTPデータベースと対照的に、大量の読書きアクセスに対して同時実行する事には不向きです。また、OLTPデータベースでミリ秒で返ってくるような小さいサイズのデータ取得依頼に対して、OLAPデータベースでは数秒掛かることもあります。しかし、OLAPデータベースは大量データに対しての処理に特化しています。OLTPデータベースで数時間、または処理できない大量データの分析処理でも数分で結果を取得できる事があります。
OLAPデータベースには大規模な機器・施設が必要になることが多く、企業で所有するにはハードルが高いため、最近では Amazon Redshift や Google BigQuery などのクラウドデータベースを時間課金で利用することが一般的になっています。

分析用途ではOLAPが最適

1つのデータベースでOLTP機能とOLAP機能を両立するのは難しいとされています。なぜなら、それぞれの機能に特化するためにデータベースの仕組みやハードウェアレベルでチューニングしている事が多いからです。
性能の良いOLTPデータベースでもデータ分析はできます。しかし、大量データになった場合、OLAPデータベースのパワーが必要になってくると思います。その時になったらクラウドのOLAPデータベースを検討してみてください。クラウドデータベースなら初期費用が少なく、比較的簡単に導入できると思います。

データ分析用語:索引
SERVICE