はじめに
データ集約型アプリケーションは、あらゆる規模の組織がより賢明な意思決定を行い、ユーザーのニーズにより迅速に対応することを可能にします。これを最も効果的に行う組織は、最高のユーザーエクスペリエンスを提供し、最高のソリューションを開発します。
堅牢なデータ駆動型組織を設計するための重要な要素は、データベースのデータ処理システムです。異なる状況に合わせて最適化された2種類のデータ処理があります。これらは、オンライン分析処理(OLAP)とオンライン取引処理(OLTP)です。このガイドでは、OLAPとOLTPについて紹介し、それらの違いについて議論し、それぞれが適切な状況を分析します。
すべてのアプリケーションデータを一元的に管理できるPrisma Data Platformをご確認ください。
OLAPとOLTPとは?
一見すると、各データ処理タイプの違いに気づくでしょう。「分析」が含まれるものと、「トランザクション」が含まれるものがあり、それ以外は同じです。これがまさに主な違いです。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について言及された特性は、以下の表にまとめることができます
OLTP | OLAP | |
---|---|---|
特徴 | 多数の小さなトランザクションを処理 | 大量のデータを処理 |
クエリ | シンプルで標準化されたクエリ、基本的な挿入、更新、削除 | 多数のレコードを含む複雑なクエリ |
操作 | INSERT , UPDATE , DELETE | データを集計またはレポートするためのSELECT |
応答時間 | ミリ秒 | データ量による:秒、分、時間、日 |
データソース | トランザクション | OLTPソースから集計 |
スペース要件 | 履歴データアーカイブを仮定すると通常は小さい | すべての履歴および現在のデータの保存により通常は大きい |
バックアップ頻度 | 可用性とデータ整合性のために定期的なバックアップが必要 | 変更が行われないため頻度は少ない。失われたデータはOLTPデータベースから復元可能 |
抽出、変換、ロード
ほとんどのユースケースでは、トランザクションデータを処理するOLTPデータベースと、トランザクションされたすべてのデータのウェアハウスとして機能するOLAPデータベースが存在する可能性が高いです。OLTPデータベースからOLAPデータベースにデータを投入するためには、抽出、変換、ロード(ETL)のプロセスが行われます。ETLは、分析に最適化されていないソース(つまりOLTPデータベース)から中央のウェアハウスにデータを抽出するために特別に設計されています。
ステージングが不要な今日の強力な分析ウェアハウスが登場する前は、トランザクションデータベースからデータが抽出され、分析データベースのためのステージングエリアでクレンジングと最適化のためにステージングされていました。このデータベースを使用するチームは、その後、エンドユーザーや意思決定者にデータを提示したり、機械学習アルゴリズムに使用したり、ダッシュボードを構築したりすることができます。
ETLプロセスについてはさらに多くのことが言えますが、この文脈で知っておくべき重要なことは、ユースケースのためにOLTPデータベースとOLAPデータベースの結合を成功させるその能力です。これは、最適化された目的のためにトランザクションデータベースと分析データベースを利用する現代のアプリケーションの全体像を完成させます。
まとめ
この記事では、2種類のデータベースシステム処理であるOLAPとOLTP、および両方をETLと併用する方法について説明しました。分析またはトランザクションという、それぞれの最適化されたユースケースに単純化できる主な違いをカバーしました。クエリタイプ、応答時間、バックアップ頻度、その他の特性に関して、各タイプはその専門分野にとって最も重要な領域でより優れたパフォーマンスを発揮します。
OLAPとOLTPを理解することで、データ集約型アプリケーションを設計する際に適切な決定を下すことができます。データで何をしたいかに応じて、いずれかのタイプがそのタスクに最適化されています。
すべてのアプリケーションデータを一元的に管理できるPrisma Data Platformをご確認ください。