私はしばらくの間 NoSQL を研究してきましたが、結果やドキュメントの検索とフィルタリングに頭を悩ませています。
NoSQL の世界では、たとえば 2 つのタイムスタンプ内ですべてのデータを見つけるにはどうすればよいでしょうか? すべてがキー/値ベースで保存されている場合は? または、緯度と経度のポイントの半径内にあるすべてのドキュメントを検索しますか?
ありがとう
私はしばらくの間 NoSQL を研究してきましたが、結果やドキュメントの検索とフィルタリングに頭を悩ませています。
NoSQL の世界では、たとえば 2 つのタイムスタンプ内ですべてのデータを見つけるにはどうすればよいでしょうか? すべてがキー/値ベースで保存されている場合は? または、緯度と経度のポイントの半径内にあるすべてのドキュメントを検索しますか?
ありがとう
データ構造が異なれば、サポートされるユースケースも異なります。たとえば、ディクショナリ/マップ インターフェイスの限られた API で間に合わせることができる場合は、分散ハッシュ テーブルが適しています。
データベースに対してより複雑なクエリを実行する必要がある場合は、このユース ケースを効率的にサポートするデータベースを選択してください。データベースのランドスケープは非常に多様であり、おそらくあなたにぴったりのデータベースが存在します。
範囲クエリの場合、BigTable のクローン (およびクエリの表現力が高い) を検討する価値があるでしょう。
適切なデータ構造を持つデータベースが十分に高速でなかったり、十分にスケーリングできない場合でも、シャーディング、レプリケーション、キャッシングや検索インデックスの巧妙な使用などのトリックを引き出すことができます。
一貫性、可用性、回復力、スループット、および待ち時間の制約をどのように検討するかは、特定の問題によって異なります。最適なソリューションを実装するには、複数の種類のデータベースが必要になる場合があります。
作為的に物事を難しくしないでください。時期尚早の最適化ですね。
私は MySQL ショップで働いていますが、1 日に数十万件のトランザクション (数百万件のクエリ) に対して十分に高速に動作し、当社のソフトウェアがテレビの生放送イベントで使用される場合でも十分に信頼性があります。
申し訳ありませんが、これ以上具体的な回答はできません。
たとえば、MongoDB は範囲クエリをサポートしており、緯度/経度情報で地理インデックスを作成できます。NoSQL データベース間には大きな違いがあります。