OLTP(Online Transaction Processing)は、多数のトランザクションを同時に実行するデータ処理の一種でです。その処理には、例えば、オンラインバンキング、ショッピング、注文入力、テキストメッセージの送信などが含まれます。これらのトランザクションは従来、経済トランザクションまたは財務トランザクションと呼ばれ、企業が会計や報告の目的でいつでも情報にアクセスできるように記録され、保護されてきました。
かつてOLTPの使用は、金銭、商品、情報、サービスリクエストなど、実世界での取引に限定されていました。しかし、年々トランザクションの定義が拡大しつつあります。特にインターネットの出現以来、世界のどこからでもWebに接続されたセンサーを介して起動できる、あらゆる種類のデジタル・インタラクションやビジネスとのエンゲージメントなどを包含するようになりました。また、WebページでのPDFダウンロード、特定のビデオの視聴、自動メンテナンスのトリガー、ソーシャル・チャンネルでのコメントなど、企業が顧客により良いサービスを提供するために記録するべき、あらゆる種類のインタラクションやアクションも含まれます。
とはいうものの、トランザクションの当初の定義(経済または金融にかかわらず)がほとんどのOLTPシステムの基盤となっています。そのため、オンライン・トランザクション処理では、通常、データストア内の少量のデータを挿入、更新、削除して、これらのトランザクションを収集、管理、および保護する必要があります。通常、Web、モバイル、エンタープライズ・アプリケーションは、顧客、サプライヤ、またはパートナーとのすべてのやり取りやトランザクションを追跡し、OLTPデータベースでそれらを更新します。データベースに蓄積されたこれらのトランザクション・データは、企業にとって重要なものであり、レポート作成や分析に使用され、データドリブンの意思決定に役立てられます。
Retraced、 Archaeological Park of Pompeii、 Jasci やSiemensなどの他の企業が、トランザクション処理ワークロードをクラウドで構築して成功した事例についてご紹介します。
通常、企業には2種類のデータ処理機能があります。OLTPとOLAPです。
名前の響きが似ていて、どちらもオンライン・データ処理システムではありますが、両者には明らかな違いがあります。
OLTPは、大量のトランザクションを大人数でリアルタイムに実行することを可能にするものです。一方、OLAP(オンライン分析処理)は、通常、分析目的のためにデータベース内のこれらのトランザクション(レコードとも呼ばれる)に問い合せをするものです。OLAPは、企業が取引データからインサイトを引き出し、より多くの情報に基づいた意思決定に利用できるよう支援します。
下の表は、OLTPとOLAPを比較したものです。
OLTPシステム |
OLAPシステム |
大量のデータベース・トランザクションを多人数でリアルタイムに実行できる。 |
通常、分析目的のためにデータベース内の多くのレコード(または全レコード)に問い合わせをする。 |
迅速なレスポンスが要求される。 |
必要とされる応答時間はOLTPとくらべて桁違いに遅い。 |
少量のデータを頻繁に変更し、通常は読み込みと書き込みをバランスよく行う。 |
データを一切変更しない。通常、ワークロードは読取り集中型である。 |
索引付けられたデータを使用して応答時間を改善する。 |
データを列形式で保存し、大量のレコードに簡単にアクセスできるようにする。 |
データベースのバックアップを頻繁に、または同時に行う必要がある。 |
データベースのバックアップ頻度を大幅に削減できる。 |
比較的小さなストレージ領域で済む。 |
大量の履歴データを保存するため、一般的に大きなストレージ容量が必要である。 |
通常、1つまたは数個のレコードを含む簡単なクエリを実行する。 |
大量のレコードを含む複雑なクエリを実行する。 |
つまり、OLTPはオンラインのデータ修正システムでです。そして、OLAPはオンラインの履歴多次元データストア・システムで、分析目的のために大量のデータを取得するのに使われます。OLAPは通常、1つまたは複数のOLTPシステムで取得されたデータに関する分析を提供します。
トランザクション・データを利用するOLTPシステムで最も一般的なアーキテクチャは、3層アーキテクチャです。3層アーキテクチャは通常、プレゼンテーション層、ビジネスロジック層、データストア層で構成されます。プレゼンテーション層はフロントエンドであり、トランザクションはシステムで生成されるか、人のインタラクションによって発生します。ロジック層は、トランザクションを検証し、トランザクションを完了するために必要なすべてのデータが利用可能であることを確認するためのルールで構成されています。データストア層は、トランザクションとそれに関連するすべてのデータを保存します。
オンライン・トランザクション処理システムの主な特徴は以下になります。
リレーショナル・データベースは、特にトランザクション・アプリケーションのために構築されました。大量のトランザクションを保存・処理するために必要な要素をすべて備えており、また、この豊富なトランザクション・データからより多くの価値を引き出すために、新しい機能や特徴が継続的にアップデートされています。リレーショナル・データベースは、可能な限り高い可用性と高速なパフォーマンスを実現するために、基礎から設計されています。また、同時実行性とACIDに準拠しているため、データは正確で、常に利用可能であり、簡単にアクセス可能です。データ間の関係を抽出した後、テーブルにデータを保存するため、信頼できる唯一の情報源を確保したうえで、どのアプリケーションでもデータを使用することができます。
トランザクションがより複雑になり、世界中のあらゆるソースやデバイスから発信されるようになると、従来のリレーショナル・データベースでは、現代のトランザクションのワークフローに関するニーズを満たせなくなりました。最新のトランザクション、異機種間データ、グローバルスケールに対応するとともに、混合ワークロードを実行するために、進化する必要があったのです。リレーショナル・データベースは、リレーショナル・データだけでなく、xml、html、JSON、Apache Avro、Parquetなど、あらゆる種類のデータやドキュメントをあまり変換せずにそのまま保存・処理する、マルチモーダル・データベースに生まれ変わりました。さらにリレーショナル・データベースは、クラスタリングやシャーディングなどの機能を追加して、グローバルに分散したり無限にスケーリング可能にしたりすることで、増え続けるデータを保存・処理し、クラウド上の安価なストレージを活用できるようにすることが求められていました。現在では、インメモリ、高度な分析、可視化、トランザクション・イベント・キューなどの機能により、これらのデータベースは、複数のワークロードを実行可能になっています。例えば、トランザクション・データの分析、ストリーミング(IoT)データの処理、空間およびグラフ分析の実行などです。
クラウドで構築された最新のリレーショナル・データベースでは、データベースの管理・運用面の多くが自動化されているので、ユーザーがより簡単にプロビジョニングし、使用できるようになっています。自動化されたプロビジョニング、セキュリティ、リカバリ、バックアップ、スケーリングにより、DBAやITチームがデータベースのメンテナンスに費やす時間は大幅に短縮されます。また、データを自動的にチューニングしてインデックスを作成するインテリジェンスも組み込まれているため、データ量、同時使用ユーザー数、クエリの複雑さにかかわらず、データベースのクエリのパフォーマンスが一定に保たれます。これらのクラウド・データベースは、セルフサービス機能やREST APIも備えているため、開発者やアナリストは簡単にデータにアクセスし、利用することができます。これにより、アプリケーションの開発が簡素化され、柔軟性が生まれ、開発者はアプリケーションに新しい機能やカスタマイズを容易に組み込むことができます。また、分析も簡素化され、アナリストやデータ・サイエンティストはデータを容易に利用し、インサイトの抽出に役立てることができます。
ITチームがビジネスチームのスピードに追いつくのに苦労する中、オペレーショナル・データベースを選択する際には、直近のデータニーズと長期的なデータ要件を考慮することが重要です。トランザクションの保存、記録システムのメンテナンス、コンテンツ管理には、高い同時実行性、高いスループット、低いレイテンシ、さらには高可用性、データ保護、ディザスタ・リカバリなどのミッション・クリティカルな特性を備えたデータベースが必要となります。ほとんどの場合、ワークロードは1日、1週間、1年を通して変動するため、データベースが自動スケーリング可能であれば、多くの費用を節約することができます。また、専用のデータベースを使うか、汎用のデータベースを使うかも決める必要があります。特定の種類のデータに対する要件であれば、専用のデータベースが有効な場合があります。ただし、他の必要な特性についても妥協がないことを確認してください。そのような特性をアプリケーション層の後半で構築するのは、コストやリソースの面で負担が大きくなります。また、データのニーズが高まり、アプリケーションの機能を拡張したい場合、単一目的の専用データベースを増やしても、データサイロができ、データ管理の問題が増幅されるだけです。また、特定のワークロードに必要と思われる他の機能についても考慮する必要があります。例えば、インジェスト要件、プッシュダウン・コンピュート要件、限界サイズなどです。
すべてのデータ管理を自動化するセルフサービス機能を搭載した、将来に備えたクラウド・データベース・サービスを選択しましょう。そうすることで、データ利用者(開発者、アナリスト、データエンジニア、データ・サイエンティスト、DBA)がデータをより有効に活用し、アプリケーション開発を加速させることができます。
クラウドOLTPデータベース・サービスであるOracleのAutonomous Transaction Processing Databaseについてさらに詳しく知ることができます。無料で試す