Couchbaseクラスタの性質と、データセットのサイズにより、データはクラスタにわたって保存されるため、ビューの開発による影響は制限されるべきです。ビューの作成はインデックスを作成するため、インデックスの生成中はサーバの性能を低下させることがあります。しかしながら、ビューはまたアクティブに保存された情報に対して開発、構築される必要もあります。
ビューの生成とテスト、およびプロダクションでのビューの開発の両方をサポートするため、Couchbase Serverは、「開発」ビューと「プロダクション」ビューという2つの異なるビュータイプをサポートしています。二つのビュータイプは同じように動作しますが、操作において異なる目的と制約があります。
開発ビュー
開発ビューはビューの定義を選択、設計している間に利用されるように設計されています。ビューが開発モードの場合、ビューは次のように動作します
デフォルトでは、開発ビューは保存された情報のサブセットのみで動作します。完全なデータセットに対して開発ビューを生成することもできます。
選択したCouchbaseバケット内の生データを利用することで、プロダクション環境のデータに対してリアルタイムにビューを開発、改良することができます。
開発モードのビューは自動的に再構築されません。また、一貫したビューであっても、自動更新メカニズムに依存しているので、リバランス処理中は開発モードのビューは更新されません。このように開発モードのビューを更新するとシステムリソースが無駄になるからです。
開発ビューは編集、変更が可能です。開発ビューの定義はいつでも変更、更新することができます。
ビューの開発中に、ビュー定義の開発を支援するために、保存されたドキュメントを参照および編集できます。
開発ビューは、プロダクションビューとは異なるURLでクライアントライブラリからアクセスでき、アプリケーション開発中にビューの種別と情報の特定を容易にします。
Webコンソールからビューを実行すると、デフォルトではバケットに保存されたドキュメント内のサブセットに対して処理を行います。Webコンソールから、全てのドキュメントに対してビューを実行することもできます。
対象ドキュメントがサブセットの場合、reduceした結果はバケット内のすべてのドキュメントに対するものではありません。 全てのドキュメントに対するビュー実行結果をチェックするべきです。
プロダクションビュー
プロダクションビューは本番環境での利用に最適化されています。プロダクションビューには次の特性があります:
プロダクションビューは、常にそれぞれのバケットの完全なデータセット上で動作します。
プロダクションビューはUIで変更することはできません。プロダクションビューの処理結果にのみアクセス可能です。プロダクションビューに変更を加えるには、開発ビューにコピーしてから変更し、再度パブリッシュする必要があります。
REST APIを利用してビューを更新することもできますが、プロダクションのデザインドキュメントを更新すると、含まれる全てのビューが即座に無効になります。
プロダクションビューは開発ビューとは異なるURLでアクセスします。
二つの異なるビュータイプは、以下の図に示すビュー開発における典型的なワークフローのために存在します:
上記の図は次の手順となります:
開発ビューを作成し、サンプルのビュー出力を確認します。
目的の結果となるようビュー定義を更新し、ビューが完成するまでこのプロセスを繰り返します。
この段階で、クライアントアプリケーションからライブラリを利用してビューにアクセスし、ニーズに合うか確認できます。
ビュー定義が完了したら、クラスタ全体のデータセットにビューを適用します。
開発ビューをプロダクションビューにプッシュします。これは、開発ビューをプロダクションビューに移動し、インデックス名を変更します(インデックスの再作成は必要ありません)。
プロダクションビューの利用を開始します。
個々のビューは、デザインドキュメントの一部として作成されます。各デザインドキュメントは、複数のビューを持つことができ、各Couchbaseのバケットは複数のデザインドキュメントを持つことができます。データに対するさまざまなインデックスを作成する際に、開発用とプロダクション用のビューの両方を保持することができます。
ビューを開発用からプロダクション用に公開する詳細については、「ビューの公開」を参照してください。