シェア

はじめに

データ集約型アプリケーションは、あらゆる規模の組織がよりスマートな意思決定を行い、ユーザーニーズに迅速に対応できるようにします。これを最も効果的に行う組織が、最高のユーザーエクスペリエンスを生み出し、最高のソリューションを開発します。

堅牢なデータ駆動型組織を設計するための重要な要素は、データベースのデータ処理システムです。状況に応じて最適化された2種類のデータ処理があります。これらの2つのタイプは、オンライン分析処理(OLAP)とオンライントランザクション処理(OLTP)です。このガイドでは、OLAPとOLTPを紹介し、それらの違いについて説明し、それぞれが適切な状況を分析します。

OLAPとOLTPとは?

一見すると、各データ処理タイプに違いがあることに気づくかもしれません。1つは「分析」、もう1つは「トランザクション」を含み、他はすべて同じです。実際、これが主な違いがある場所です。OLAPデータベースは、主に分析と洞察の生成に使用されるように設計されたデータベースシステムです。OLTPデータベースは、後続のセクションで説明するパフォーマンス特性を必要としますが、OLAPデータベースは、一般的に大量のデータセットを取り込み、処理するように設計されています。主要な操作は、複雑で実行時間の長いクエリを実行し、ビジネス上の意思決定のためにレポート、グラフ、および洞察を生成することです。

OLAPとは?

成功するOLAPデータベース実装の最も重要な特性は、複雑なクエリに対する応答時間です。遅いクエリはアプリケーションのトランザクション処理には影響しませんが、クエリ結果の遅延は、これらのインテリジェンスの洞察に依存するデータアナリストや他の意思決定者の正確性に影響を与える可能性があります。

OLAPデータベースは、伝統的にデータウェアハウスとして実装され、現在および過去の大量のデータを格納します。データはウェアハウスの存在期間中に構造が変化する可能性があるため、OLAPデータベースは通常、多次元スキーマを持ちます。コンピューティングでは、このデータの多次元配列抽象化は、OLAPキューブと呼ばれます。

OLAPデータベースの処理時間は、読み取り集中型で、大量のデータセットに対する複雑なクエリであるため、伝統的に遅くなります。現在のデータ変更はOLAPデータベースでは行われないため、データのバックアップの必要性は頻繁ではありません。

OLTPとは?

OLTPは、主に高速でほぼリアルタイムのデータベースタスクを容易にするように設計されたデータベースシステムです。通常、OLTPデータベースは、複数のクライアントが同時にデータにアクセスしている可能性があり、迅速な応答時間が必要なアプリケーションで使用されます。OLTPデータベースは、信頼性と処理速度のために最適化されています。たとえば、OLTPデータベースは通常、パスワードのリセット、アプリ内購入、およびその性質の操作などのアクションを処理します。OLTPデータベースは、OLAPのような膨大なデータセットのストレージよりも、これらの挿入、更新、および削除操作に適しています。

OLAPとは異なり、OLTPクエリは、複雑さが低く、高速処理が必要で、通常は比較的少数のレコードのみに触れるため、数ミリ秒しか持続しないはずです。OLTPデータベースシステム上で実行されているアプリケーションは通常、組織にとって非常に重要であり、トランザクション処理に影響を与えるダウンタイムは評判を損ないます。

ダウンタイムの重要性から、OLTPデータベースは、高可用性を維持するためにより積極的なバックアップ戦略も必要とします。OLTPシステムは、その性質上、常にデータを変更しています。中断の場合のデータ整合性を確保するために、OLTPシステムは頻繁なバックアップスナップショットまたは同時バックアップを実行する必要があります。

OLAP処理とOLTP処理をいつ使用するか?

実際には、OLAPとOLTPの選択は簡単な決定です。分析が必要な大量のデータを扱っている場合、OLAPがより効率的な処理システムになります。リアルタイムで多数の小さなトランザクションを処理し、高速処理が必要な場合は、OLTPが最適です。

ほとんどの組織は、両方のタイプを組み合わせて使用します。また、OLTPデータベースを使用してOLAPデータベースにデータを投入することも一般的です。このプラクティスは、データベースワークロードの分離の良い例を示しています。OLTPデータベースは、変更を継続して新しいデータを処理し、既存のデータを迅速に更新できます。OLAPデータウェアハウスは、分析およびビジネスインテリジェンスチームがデータセット全体で複雑なクエリを実行するために分離されます。

データウェアハウスの代わりに、組織はデータベースインスタンスの読み取り専用レプリカをスピンアップするか、本番データベースのダンプをインスタンスにロードして、OLAP処理の利点を享受できます。その後、これらのインスタンスからクエリを実行して、実行時間の長い複雑なクエリを分離できます。

全体として、OLAPとOLTPについて言及された特性は、次の表に分類できます。

OLTPOLAP
特性多数の小さなトランザクションを処理する大量のデータを処理する
クエリ単純な標準化されたクエリ、基本的な挿入、更新、削除多数のレコードを含む複雑なクエリ
操作INSERTUPDATEDELETEデータを集計またはレポートするためのSELECT
応答時間ミリ秒データ量に応じて:秒、分、時間、日
データソーストランザクションOLTPソースから集計
スペース要件通常、履歴データアーカイブを想定して小さい通常、すべての履歴データと現在のデータのストレージから大きい
バックアップ頻度可用性とデータ整合性のために定期的なバックアップが必要変更が行われていないため、頻度が低い。失われたデータはOLTPデータベースから取得可能

抽出、変換、ロード

ほとんどのユースケースでは、トランザクションデータを処理するOLTPデータベースと、トランザクション処理されたすべてのデータのウェアハウスとして機能するOLAPデータベースが存在する可能性があります。OLTPデータベースからOLAPデータベースにデータを投入するために、抽出、転送、およびロード(ETL)のプロセスが発生します。ETLは、分析に最適化されていないソース(つまり、OLTPデータベース)から中央ウェアハウスにデータを抽出するために特別に設計されています。

ステージングが不要な今日の強力な分析ウェアハウスが登場する前は、トランザクションデータベースからデータが抽出され、分析データベースのステージングエリアでクレンジングと最適化のためにステージングされていました。このデータベースを使用するチームは、エンドユーザーまたは意思決定者にデータを提示したり、機械学習アルゴリズムやダッシュボードの構築に使用したりできます。

ETLプロセスについてはさらに多くのことを言うことができますが、このコンテキストで知っておくべき重要なことは、ユースケースのためにOLTPデータベースとOLAPデータベースの結合を成功させる能力です。トランザクションデータベースと分析データベースを最適化された目的のために利用する最新のアプリケーションの全体像を完成させます。

結論

この記事では、OLAPとOLTPの2つの異なるタイプのデータベースシステム処理と、それらがETLでどのように使用できるかについて説明しました。クエリタイプ、応答時間、バックアップ頻度、およびその他の特性に関して、それぞれのタイプが専門分野に最も重要な領域でより優れたパフォーマンスを発揮するように、主な違いを分析またはトランザクションの最適化されたユースケースに単純化して説明しました。

OLAPとOLTPを理解することで、データ集約型アプリケーションを設計する際に適切な意思決定を行うことができます。データで何をしたいかに応じて、いずれかのタイプがタスクに最適化されます。

著者について
Alex Emerich

アレックス・エメリッヒ

アレックスは、データベースについて書くことも楽しんでいる、典型的なバードウォッチング好きのヒップホップ好きの読書家です。彼は現在ベルリンに住んでおり、レオポルド・ブルームのように目的もなく街を歩いている姿を見かけることがあります。