第1章 Oracle NoSQL Databaseの概要

目次

KVStore
レプリケーション・ノードとシャード
レプリケーション係数
パーティション
トポロジ
データ・センター
アクセスとセキュリティ
管理コマンドライン・インタフェース
管理コンソール
データ・コマンドライン・インタフェース
Oracle外部表統合
Coherence統合

Oracle NoSQL Database (Oracle NoSQL Database)へようこそ。Oracle NoSQL Databaseは、スケーラブルなスループットとパフォーマンスが得られる、複数テラバイトのキーと値のペアの分散型ストアです。換言すると、キーと値のペアに編成されたデータを格納および取得するネットワーク・リクエストをサービスします。Oracle NoSQL Databaseでは、この種のデータ・リクエストは、ストアの構成方法に基づいて予測可能なレイテンシ、スループットおよびデータの一貫性を伴ってサービスされます。

Oracle NoSQL Databaseでは、作成、読取り、更新および削除(CRUD)のフル操作と調整可能な永続性保証が提供されます。Oracle NoSQL Databaseは、優れた可用性、スループットおよびレイテンシを提供する一方、最小限の管理操作で済むよう設計されています。

Oracle NoSQL Databaseでは、パフォーマンスはスケーラブルです。パフォーマンスを向上させる必要がある場合、より多くのハードウェアを使用します。パフォーマンス要件がそれほど高くない場合、より少ないハードウェア・リソースを購入して管理します。

Oracle NoSQL Databaseは、読取り/書込みパフォーマンス・レベルがユーザー定義可能で、ネットワークアクセス可能なキーバリュー・データを必要とするアプリケーション向けのものです。標準的なアプリケーションは、Webサーバー、アプリケーション・サーバーおよびバックエンド・データベースの従来型3層アーキテクチャでリクエストをサービスするWebアプリケーションです。この構成では、Oracle NoSQL Databaseは、アプリケーション・サーバーの後ろにインストールされることになり、バックエンド・データベースのかわりに使用されるか、データベースと併用されます。Oracle NoSQL Databaseを使用するには、アプリケーション・サーバーで実行されるコードを記述(JavaまたはCを使用)する必要があります。

アプリケーションでOracle NoSQL Databaseを使用するには、KVStoreと呼ばれるOracle NoSQL Databaseのキーバリュー・ストアに対してネットワーク・リクエストを行います。リクエストは、Javaライブラリ(.jarファイル)としてアプリケーションにリンクされるOracle NoSQL Databaseドライバを使用して行われ、一連のJava APIを使用してアクセスされます。

これらのAPIの使用法については、『Oracle NoSQL Databaseスタート・ガイド』で概要を説明します。

KVStore

KVStoreは、レプリケーション・ノードのセットをホストするストレージ・ノードの集まりです。データは、レプリケーション・ノード間に分散されます。従来の3層Webアーキテクチャを例にすると、KVStoreはバックエンド・データベースにかわるものか、バックエンド・データベースと併用されるものです。

ストアには、複数のストレージ・ノードが含まれます。ストレージ・ノードは、ローカル・ストレージを持った物理(あるいは、仮想)マシンです。マシンにはコモディティ・ハードウェアが想定されています。ストア内のその他のすべてのストレージ・ノードと同一である方が望ましいですが、そうである必要はありません。

次の図に、Oracle NoSQL Databaseを利用するアプリケーションで使用される代表的なアーキテクチャを示します。

NoSQLデータベース・ストア・アーキテクチャ

各ストレージ・ノードは、capacityで決定されているとおりに1つ以上のレプリケーション・ノードをホストします。ストレージ・ノードの容量は、ノードに関連付けられたハードウェア・リソースのだいたいのめやすとなります。1つのストアは、容量の異なる複数のストレージ・ノードで構成できます。Oracle NoSQL Databaseは、容量に比例する負荷がストレージ・ノードに割り当てられるようにします。容量をストレージ・ノードに関連付ける方法の詳細は、「インストールの構成」capacityパラメータの説明を参照してください。その後、レプリケーション・ノードには少なくとも1つ(通常は複数)のパーティションが含まれるようになります。(ストレージ・ノードとレプリケーション・ノードの数を均衡化する最適な方法の詳細は、「非コンプライアンス・トポロジの均衡化」を参照してください。)各ストレージ・ノードには、ホストするレプリケーション・ノードが稼働していることや問題がないことを確認する監視ソフトウェアも含まれています。

レプリケーション・ノードとシャード

大まかに言うと、レプリケーション・ノードは、キーと値のペアを含む1つのデータベースとみなすことができます。

レプリケーション・ノードはシャードに編成されます。シャードには、データベース書込みの実行を担うマスター・ノードと呼ばれる1つのレプリケーション・ノードが含まれます。マスター・ノードは、その書込みをレプリカと呼ばれるシャード内の他のレプリケーション・ノードにコピーします。これらのレプリカは、対応するマスター・ノードからデータの完全なコピーを取得し、読取り専用操作のサービスに使用します。ある時点で存在できるマスター・ノードは1つだけですが、シャードのメンバーはいずれもマスター・ノードになることが可能です。つまり、各シャードでは、単一マスター/複数レプリカ・ストラテジを使用して、読取りのスループットと可用性を向上させます。

次の図に、KVStoreがシャードに分かれている状態を示します。

NoSQLデータベース・シャード

マスターをホストするマシンに何らかの障害が発生すると、シャード内の別のいずれかのノードにマスターが自動的にフェイルオーバーすることに注意してください。(つまり、レプリカ・ノードの1つが自動的にマスターに昇格されます。)

本番KVStoreには複数のシャードが含まれます。インストール時、ストアに含まれるシャードの数をOracle NoSQL Databaseで自動的に決定できるようにするための情報を指定します。ストアに含まれるシャードが多いほど、書込みリクエストをサービスするノードがストアに多く含まれるため、書込みのパフォーマンスが向上します。

レプリケーション係数

シャードに属するノードの数は、レプリケーション係数と呼ばれます。シャードのレプリケーション係数が大きいほど、読取りのスループットは向上します(読取りリクエストをサービスするマシンが増えるため)が、書込みのパフォーマンスは低下します(書込みのコピー先のマシンが増えるため)。ストアのレプリケーション係数を設定すると、Oracle NoSQL Databaseは、ストアに含まれる各シャードに対して適切な数のレプリケーション・ノードが作成されるようにします。

各自のレプリケーション係数およびその関連性の識別方法の詳細は、「レプリケーション係数」を参照してください。

パーティション

各シャードには、1つ以上のパーティションが含まれます。ストア内のキーと値のペアは、キーによって編成されます。さらに、キーにはパーティションが割り当てられます。キーは、パーティションへの配置後は別のパーティションに移動できません。Oracle NoSQL Databaseでは、すべての使用可能なパーティション間でキーが均等に割り当てられます。

計画の一環として、ストアに含めるパーティションの数を決める必要があります。これは、ストアのインストール後は構成できないことに注意してください。

ストアで使用するストレージ・ノードの数は拡張して変更することが可能です。この操作が行われる場合、新規シャードの追加によって、新規リソースを利用するようにストアを再構成できます。この操作が行われる場合、あるシャードから別のシャードにパーティションを再配布することで、新規シャードと既存シャードの間でパーティションが均衡化されます。このため、ストアをきめ細かに再構成できるように十分な数のパーティションを含めることが推奨されます。多数のパーティションを含めることには最小限のパフォーマンス・コストが伴うことに注意してください。一般的には、シャードごとに少なくとも10〜20のパーティションが必要です。パーティション数は初期のデプロイ後に変更できないため、パーティション数の指定時には予想される最大サイズのストアを想定する必要があります。

トポロジ

トポロジは、NoSQL DBストアを構成するストレージ・ノード、レプリケーション・ノードおよび管理サービスの集合体です。デプロイされた各ストアには、ある時点の状態を示すトポロジが1つあります。

初期のデプロイ後、特定のシャードで単一障害点が発生する可能性が最小限になるようにトポロジが配置されます。つまり、ストレージ・ノードは複数のレプリケーション・ノードをホストする可能性がありますが、そのレプリケーション・ノードが同じシャードに属することはありません。これにより、ホスト・マシンを停止させるハードウェア障害が発生しても、シャードを引き続き読取りおよび書込みに使用できる可能性が高くなります。 トポロジが従う必要があるルールの詳細は、「ストアの構成の決定」を参照してください。

トポロジは、様々なパフォーマンス特性を実現する場合や、ストレージ・ノードの数または特性の変更に対応する場合に変更できます。トポロジの変更およびデプロイは反復的なプロセスです。コマンドライン・インタフェースの使用によるトポロジの作成、変換、表示、検証およびプレビューの詳細は、「トポロジ」を参照してください。

データ・センター

データ・センターは物理的な場所であり、通常は、冗長またはバックアップ電源供給、冗長データ通信接続、環境制御(たとえば、エアコン、消火)およびセキュリティ・デバイスを含みます。大規模な停電やネットワーク障害のような、物理的な場所全体に影響するシステム障害から保護するために、Oracleは複数のデータ・センターでストアをインストールおよび構成することをお薦めします。

データ・センターが複数あると、障害を分離できるため、1つのデータ・センターに障害が起こった場合でもデータの可用性が高まります。

コマンドライン・インタフェースを使用して、1つ以上のデータ・センターを作成してデプロイできます。各データ・センターは、デプロイされたストレージ・ノードをホストします。データ・センターおよびその作成方法の詳細は、「データ・センターの作成」を参照してください。