TimesTen Scaleoutの使用
TimesTen Scaleoutは、複数インスタンス環境および分散データベースに使用されます。TimesTen Scaleoutは、インメモリー・データに対する高速アクセス、フォルト・トレランスおよび高可用性を実現します。
TimesTen Scaleoutを使用すると、次のことが可能です。
-
グリッド(1つ以上のホストにインストールされた一連の相互接続されたインスタンス)を作成します。
-
データの1つ以上のコピーを保持します。データのコピーを複数保持することで、単一の障害が発生した場合にデータ損失から保護されます。
-
シェアード・ナッシング・アーキテクチャを使用して、可用性の高い方法でグリッドのインスタンスに各データベースのデータを分散します。
-
データベース全体のデータの分散方法に関係なく、すべてのデータへの完全なアクセス権を使用して、アプリケーションをデータベースに接続します。
-
グリッドにインスタンスを追加または削除して次のことを行います。
-
必要に応じてデータベースの記憶域容量を拡張または縮小します。
-
アプリケーションのパフォーマンス要件にあわせてデータベースのコンピューティング・リソースを拡張または縮小します。
-
『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』のTimesTen Scaleoutの概要を参照してください。
TimesTen Scaleoutアプリケーション使用例
TimesTen Scaleoutの一般的なユースケース・シナリオは、Internet of Things (IoT)アプリケーションです。
TimesTen Scaleoutを使用して次のことを実行します:
-
多くの接続済デバイスからデータ(センサー読取り、地理的位置データ、テレメトリなど)を半ばリアルタイムに取得します。
-
データを詳細なレポートおよび分析のために他のシステムにオフロードする前に、(アラートを目的として)リアルタイムで集計および分析します。
インターネットは広く普及しており、ますます多くのデバイス(スマート・ホーム、スマートフォン、タブレット、車、家庭電化製品、電力量計、エクササイズ機器、GPSトラッカ、RFIDタグなど)が接続されるようになってきています。サービスの多くは、このようなデバイスからリアルタイムに生成される大量のデータを効率的に取得して処理する必要があります。
図2-1 Internet of ThingsアプリケーションでのTimesTen Scaleoutの使用
「図2-1 Internet of ThingsアプリケーションでのTimesTen Scaleoutの使用」の説明
TimesTen Scaleoutアプリケーションの例では、スマート・ホーム・テクノロジのベンダーがTimesTen Scaleoutを使用してセンサー・データ(温度、湿度、CO2レベル、デバイス・イベント)を取得する方法を示しています。取得されたデータは、異常な状態に対してリアルタイムのアラートを生成するために集計および分析され、収集されたデータは、アーカイブの格納や深さ分析などを目的として他のシステムにオフロードされます。オフロードされたデータはデータベースから消去されます。
-
取得: スマート・ホーム・デバイスから収集されたセンサー・データは、データベースの周辺で実行されているデータ収集アプリケーションにインターネットを介して送信されます。これらのアプリケーションは、受信したデータに基づいてデータベースにデータを挿入して更新します。
-
集計および分析: リアルタイム集計およびアラート・アプリケーションは、データの到着時に初期処理を実行します。アプリケーションは、重要なイベントを検出すると、スマート・ホーム・デバイス、ユーザーのスマートフォン・アプリケーションなどにアラートを送信します。
オフロード・アプリケーションおよび消去アプリケーションは、不要になった履歴集計データを、長期間の格納および分析を目的としてオンラインで記憶域に移動します。記憶域に移動したら、集計されたデータおよび基礎となるRawデータがデータベースから消去されます。
TimesTen Scaleoutは、このタイプのアプリケーションに最適です。
-
高スループットと低レイテンシにより、TimesTen Scaleoutは負荷の高い読取り/書込みのワークロードに対処できます。
-
フォルト・トレラント・アーキテクチャを使用すると、TimesTen Scaleoutは、ハードウェア障害やソフトウェア障害が発生しても稼働時間の連続化を実現できます。
-
柔軟なスケーラビリティ機能を使用すると、オンライン状態を維持しながらデータベースの記憶域と処理能力を動的に増加できます。
-
業界標準言語およびAPIを幅広くサポートしているため、開発者が様々なアプリケーション・コンポーネントを容易に構築できます。