6

クエリが必要なデータのサイズと、複数のノードで必要に応じてスケーリングできるため、何らかのタイプの NoSQL データベースの使用を検討しています。私は多数の NoSQL 製品を調査してきましたが、データ構造に最高のパフォーマンス、スケーラビリティ、および機能を提供する最良のオプションをまだ決定できていません。

データ構造モデルは、各ドキュメント/セットがその個々の製品の特定のプロパティと説明を含む製品カタログです。プロパティは製品ごとに異なるため、スキーマのない製品が最も効果的です。

サンプル構造は次のようになります

[
 {"name": "item name",
  "cost": 563.34,
  "category": "computer",
  "manufacturer: "sony",
.
.
.
 }
]

そのため、同じクエリで複数のインデックス/フィールドをフィルター処理して除外できる、レコードセット内のさまざまなデータセットフィールド/インデックスをフィルター処理/クエリできる必要があります。クエリはほとんどが読み取りであり、結合や関係タイプのリンクはあまり必要ありません。

私が調べたのは、Elastic Search、mongodb、OrientDB、Couchbase、および Aerospike です。

  • Elastic Search は当然の選択のように思えますが、パフォーマンスと安定性について疑問に思っていましたか?
  • Aerospike は、すべてをほとんどメモリ内で実行するため、非常に高速に見えますが、フィルタリングと検索機能はそれほど有能ではないようです。

私のユースケースに最適なオプションは何だと思いますか? または、他に検討すべき推奨DBがあるかどうか。

実際のユースケースでパフォーマンスをテストするのが最善の方法であることはわかっていますが、最初に少し絞り込むことを望んでいます。

ありがとうございました

4

3 に答える 3

0

Aerospike はキーと値のストアであり、ドキュメント データベースではありません。ドキュメント データベースは、このようなフィールド レベルのインデックス作成と、ネストされたオブジェクトへのより深い検索をより適切に実行します。現在、Aerospike のセカンダリ インデックス (バージョン 3.4.x) は、文字列と整数の「ビン」 (ドキュメントのフィールドや SQL テーブルの列に似た概念) で機能します。

とはいえ、Aerospike のリストとマップの複雑なタイプは、この四半期に行われている作業で、これらの機能で強化されています。今後のリリースでのこれらの変更に注意してください。リスト型とマップ型のビンにインデックスを付けてクエリを実行できます。


于 2015-02-05T00:13:26.933 に答える