OLTPとは

OLTPの定義

OLTP(Online Transaction Processing)は、多数のトランザクションを同時に実行するデータ処理の一種でです。その処理には、例えば、オンラインバンキング、ショッピング、注文入力、テキストメッセージの送信などが含まれます。これらのトランザクションは従来、経済トランザクションまたは財務トランザクションと呼ばれ、企業が会計や報告の目的でいつでも情報にアクセスできるように記録され、保護されてきました。

かつてOLTPの使用は、金銭、商品、情報、サービスリクエストなど、実世界での取引に限定されていました。しかし、年々トランザクションの定義が拡大しつつあります。特にインターネットの出現以来、世界のどこからでもWebに接続されたセンサーを介して起動できる、あらゆる種類のデジタル・インタラクションやビジネスとのエンゲージメントなどを包含するようになりました。また、WebページでのPDFダウンロード、特定のビデオの視聴、自動メンテナンスのトリガー、ソーシャル・チャンネルでのコメントなど、企業が顧客により良いサービスを提供するために記録するべき、あらゆる種類のインタラクションやアクションも含まれます。


とはいうものの、トランザクションの当初の定義(経済または金融にかかわらず)がほとんどのOLTPシステムの基盤となっています。そのため、オンライン・トランザクション処理では、通常、データストア内の少量のデータを挿入、更新、削除して、これらのトランザクションを収集、管理、および保護する必要があります。通常、Web、モバイル、エンタープライズ・アプリケーションは、顧客、サプライヤ、またはパートナーとのすべてのやり取りやトランザクションを追跡し、OLTPデータベースでそれらを更新します。データベースに蓄積されたこれらのトランザクション・データは、企業にとって重要なものであり、レポート作成や分析に使用され、データドリブンの意思決定に役立てられます。

RetracedArchaeological Park of PompeiiJasci やSiemensなどの他の企業が、トランザクション処理ワークロードをクラウドで構築して成功した事例についてご紹介します。

通常、企業には2種類のデータ処理機能があります。OLTPとOLAPです。

OLTPとOLAPの比較

名前の響きが似ていて、どちらもオンライン・データ処理システムではありますが、両者には明らかな違いがあります。

OLTPは、大量のトランザクションを大人数でリアルタイムに実行することを可能にするものです。一方、OLAP(オンライン分析処理)は、通常、分析目的のためにデータベース内のこれらのトランザクション(レコードとも呼ばれる)に問い合せをするものです。OLAPは、企業が取引データからインサイトを引き出し、より多くの情報に基づいた意思決定に利用できるよう支援します。

下の表は、OLTPとOLAPを比較したものです。

OLTPシステム

OLAPシステム

大量のデータベース・トランザクションを多人数でリアルタイムに実行できる。

通常、分析目的のためにデータベース内の多くのレコード(または全レコード)に問い合わせをする。

迅速なレスポンスが要求される。

必要とされる応答時間はOLTPとくらべて桁違いに遅い。

少量のデータを頻繁に変更し、通常は読み込みと書き込みをバランスよく行う。

データを一切変更しない。通常、ワークロードは読取り集中型である。

索引付けられたデータを使用して応答時間を改善する。

データを列形式で保存し、大量のレコードに簡単にアクセスできるようにする。

データベースのバックアップを頻繁に、または同時に行う必要がある。

データベースのバックアップ頻度を大幅に削減できる。

比較的小さなストレージ領域で済む。

大量の履歴データを保存するため、一般的に大きなストレージ容量が必要である。

通常、1つまたは数個のレコードを含む簡単なクエリを実行する。

大量のレコードを含む複雑なクエリを実行する。

つまり、OLTPはオンラインのデータ修正システムでです。そして、OLAPはオンラインの履歴多次元データストア・システムで、分析目的のために大量のデータを取得するのに使われます。OLAPは通常、1つまたは複数のOLTPシステムで取得されたデータに関する分析を提供します。

OLTPシステムに必要な要件

トランザクション・データを利用するOLTPシステムで最も一般的なアーキテクチャは、3層アーキテクチャです。3層アーキテクチャは通常、プレゼンテーション層、ビジネスロジック層、データストア層で構成されます。プレゼンテーション層はフロントエンドであり、トランザクションはシステムで生成されるか、人のインタラクションによって発生します。ロジック層は、トランザクションを検証し、トランザクションを完了するために必要なすべてのデータが利用可能であることを確認するためのルールで構成されています。データストア層は、トランザクションとそれに関連するすべてのデータを保存します。

オンライン・トランザクション処理システムの主な特徴は以下になります。

  • ACIDを遵守: OLTPシステムは、トランザクション全体が正しく記録されることを保証しなければなりません。トランザクションとは、通常、複数のステップまたは操作の実行を必要とする、プログラムの実行のことです。関係者全員がトランザクションを承認したとき、または製品・サービスが引き渡されたとき、あるいはデータベース内の特定のテーブルに一定回数の更新が行われたときに完了となることがあります。トランザクションは、関連するすべてのステップが実行・記録されることで、初めて正しく記録されます。いずれかのステップでエラーが発生した場合は、トランザクション全体を中断し、すべてのステップをシステムから削除する必要があります。したがって、OLTPシステムは、システム内のデータの正確性を保証するために、ACIDの特性(Atomic: 原子性、Consistent: 一貫性、Isolated: 独立性、Durable: 永続性)を遵守する必要があります。
    • 原子性: 原子性の制御では、トランザクションのすべてのステップがグループとして正常に完了することを保証します。つまり、トランザクション間のいずれかのステップが失敗した場合、他のすべてのステップも失敗もしくは元に戻す必要があります。トランザクションが正常に終了することをコミットと呼びます。トランザクションが失敗することをアボートと呼びます。
    • 一貫性: トランザクションは、データベースの内部一貫性を保持します。最初に一貫性が保たれているデータベースでトランザクションを単独で実行した場合、トランザクションの実行が終了すると、再度一貫性が保たれます。
    • 独立性: トランザクションは、他のトランザクションがない状態、つまり、あたかも単独で実行されているかのように実行されます。つまり、一連のトランザクションを実行した場合でも、1つずつ実行した場合と同じ効果が得られます。この動作はシリアライズ可能性と呼ばれ、通常、テーブルの特定の行をロックすることで実装されます。
    • 永続性: トランザクションが失敗しても結果が失われることはありません。
  • 同時実行性: OLTPシステムでは、膨大な数のユーザーが同時に同じデータにアクセスする場合があります。OLTPシステムでは、読み取りや書き込みを試みるすべてのユーザーに対し、同時実行性を保証しなければなりません。同時実行性の制御では、データベース・システム内の同じデータに同時にアクセスする2人のユーザーが、そのデータを変更できないようにします。または、一方のユーザーは、もう一方のユーザーが処理を終えるまで、そのデータを変更するのを待たなければならないようにします。
  • スケーリング: OLTPシステムは、システムにアクセスしようとするユーザーの数に関係なく、トランザクション量をリアルタイムで管理し、トランザクションを同時に実行するために、瞬時にスケールアップとスケールダウンを行う必要があります。
  • 可用性: OLTPシステムは常に利用可能であり、常にトランザクションを受け入れる準備ができていなければなりません。トランザクションの損失は、収益の損失につながる可能性があり、また、法的な影響を受ける可能性もあります。OLTPシステムは、世界のどこからでも、いつでも取引ができるよう、24時間365日利用可能である必要があります。
  • 高スループットと短いレスポンス: OLTPシステムでは、企業ユーザーの生産性を維持し、顧客の高まる期待に応えるために、ナノ秒あるいはそれよりも短いレスポンスタイムが要求されます。
  • 信頼性: OLTPシステムは通常、選択性の高い少量のデータを読み、操作します。いかなるときも、データベース内のデータが、そのデータにアクセスするユーザーやアプリケーションにとって、信頼できるものであることが最も重要です。
  • セキュリティ: これらのシステムには、非常に機密性の高い顧客トランザクション・データが保存されているため、データ・セキュリティは非常に重要です。違反があれば、企業にとって大きな損害となる可能性があります。
  • 回復容易性: OLTPシステムには、ハードウェアやソフトウェアに障害が発生した場合にリカバリできる能力が必要です。

OLTPワークロード向けデータベース

リレーショナル・データベースは、特にトランザクション・アプリケーションのために構築されました。大量のトランザクションを保存・処理するために必要な要素をすべて備えており、また、この豊富なトランザクション・データからより多くの価値を引き出すために、新しい機能や特徴が継続的にアップデートされています。リレーショナル・データベースは、可能な限り高い可用性と高速なパフォーマンスを実現するために、基礎から設計されています。また、同時実行性とACIDに準拠しているため、データは正確で、常に利用可能であり、簡単にアクセス可能です。データ間の関係を抽出した後、テーブルにデータを保存するため、信頼できる唯一の情報源を確保したうえで、どのアプリケーションでもデータを使用することができます。

トランザクション処理データベースの進化

トランザクションがより複雑になり、世界中のあらゆるソースやデバイスから発信されるようになると、従来のリレーショナル・データベースでは、現代のトランザクションのワークフローに関するニーズを満たせなくなりました。最新のトランザクション、異機種間データ、グローバルスケールに対応するとともに、混合ワークロードを実行するために、進化する必要があったのです。リレーショナル・データベースは、リレーショナル・データだけでなく、xml、html、JSON、Apache Avro、Parquetなど、あらゆる種類のデータやドキュメントをあまり変換せずにそのまま保存・処理する、マルチモーダル・データベースに生まれ変わりました。さらにリレーショナル・データベースは、クラスタリングやシャーディングなどの機能を追加して、グローバルに分散したり無限にスケーリング可能にしたりすることで、増え続けるデータを保存・処理し、クラウド上の安価なストレージを活用できるようにすることが求められていました。現在では、インメモリ、高度な分析、可視化、トランザクション・イベント・キューなどの機能により、これらのデータベースは、複数のワークロードを実行可能になっています。例えば、トランザクション・データの分析、ストリーミング(IoT)データの処理、空間およびグラフ分析の実行などです。

クラウドで構築された最新のリレーショナル・データベースでは、データベースの管理・運用面の多くが自動化されているので、ユーザーがより簡単にプロビジョニングし、使用できるようになっています。自動化されたプロビジョニング、セキュリティ、リカバリ、バックアップ、スケーリングにより、DBAやITチームがデータベースのメンテナンスに費やす時間は大幅に短縮されます。また、データを自動的にチューニングしてインデックスを作成するインテリジェンスも組み込まれているため、データ量、同時使用ユーザー数、クエリの複雑さにかかわらず、データベースのクエリのパフォーマンスが一定に保たれます。これらのクラウド・データベースは、セルフサービス機能やREST APIも備えているため、開発者やアナリストは簡単にデータにアクセスし、利用することができます。これにより、アプリケーションの開発が簡素化され、柔軟性が生まれ、開発者はアプリケーションに新しい機能やカスタマイズを容易に組み込むことができます。また、分析も簡素化され、アナリストやデータ・サイエンティストはデータを容易に利用し、インサイトの抽出に役立てることができます。

OLTPワークロードに適したデータベースの選択方法

ITチームがビジネスチームのスピードに追いつくのに苦労する中、オペレーショナル・データベースを選択する際には、直近のデータニーズと長期的なデータ要件を考慮することが重要です。トランザクションの保存、記録システムのメンテナンス、コンテンツ管理には、高い同時実行性、高いスループット、低いレイテンシ、さらには高可用性、データ保護、ディザスタ・リカバリなどのミッション・クリティカルな特性を備えたデータベースが必要となります。ほとんどの場合、ワークロードは1日、1週間、1年を通して変動するため、データベースが自動スケーリング可能であれば、多くの費用を節約することができます。また、専用のデータベースを使うか、汎用のデータベースを使うかも決める必要があります。特定の種類のデータに対する要件であれば、専用のデータベースが有効な場合があります。ただし、他の必要な特性についても妥協がないことを確認してください。そのような特性をアプリケーション層の後半で構築するのは、コストやリソースの面で負担が大きくなります。また、データのニーズが高まり、アプリケーションの機能を拡張したい場合、単一目的の専用データベースを増やしても、データサイロができ、データ管理の問題が増幅されるだけです。また、特定のワークロードに必要と思われる他の機能についても考慮する必要があります。例えば、インジェスト要件、プッシュダウン・コンピュート要件、限界サイズなどです。

すべてのデータ管理を自動化するセルフサービス機能を搭載した、将来に備えたクラウド・データベース・サービスを選択しましょう。そうすることで、データ利用者(開発者、アナリスト、データエンジニア、データ・サイエンティスト、DBA)がデータをより有効に活用し、アプリケーション開発を加速させることができます。

クラウドOLTPデータベース・サービスであるOracleのAutonomous Transaction Processing Databaseについてさらに詳しく知ることができます。無料で試す