NoSQL(非リレーショナル)データベースを使用して空間データを格納した経験はありますか?そのようなデータベースを使用して、たとえばデスクトップアプリケーションのデータを保持することの潜在的な利点(速度、スペースなど)はありますか(SpatiaLiteまたはPostGISを使用する場合と比較して)?
空間データにMongoDBを使用することについての投稿を見たことがありますが、パフォーマンスの比較に興味があります。
NoSQL(非リレーショナル)データベースを使用して空間データを格納した経験はありますか?そのようなデータベースを使用して、たとえばデスクトップアプリケーションのデータを保持することの潜在的な利点(速度、スペースなど)はありますか(SpatiaLiteまたはPostGISを使用する場合と比較して)?
空間データにMongoDBを使用することについての投稿を見たことがありますが、パフォーマンスの比較に興味があります。
Neo4jのようなグラフデータベースは、特に、さまざまなインデックススキームを動的に追加できるため、非常に適しています。ベースデータで実行できる一般的な処理は、もちろん1Dインデックス作成(TimlineやB-Treeなど)またはヒルベルト曲線などのファンキーな処理です。Nickのブログを参照してください。また、いくつかのライブデモンストレーションについては、ここでAWEオープンソースGISデスクトップツールを見てください。基になるインデックス付きグラフは、07:00頃に表示されます。
現在、MongoDBはPostGISのRツリーよりも遅いBツリーでジオハッシュを使用しています(正確な数値を示すことはできませんが、恐れていますが、違いに関する理論的な文献はたくさんあります)。ただし、これらのスライドでは、http://www.slideshare.net/nknize/rtree-spatial-indexing-with-mongodb-mongodc著者は、RツリーをMongoDBに追加し、geoキーをシャーディングすることについて話します。デスクトップの使用について話しているので、大規模なデータセットでシャーディングの利点がより感じられるため、ジオシャーディングは重要ではない可能性があります。最終的には、おそらく空間データで何をしたいのかということになります。Postgisは、トポロジー、ラスター、3D、座標系間の変換をサポートする機能がはるかに多いため、これがあなたが探しているものである場合でも、PostGISが最良のオプションです。数十億/数兆の空間オブジェクトを格納し、いくつかの基準に基づいてこのポイントの近く/内部のすべてのポイントを基本的に検索することに関心がある場合は、MongoDBが非常に適しています。
Couchdbには単純な空間拡張もあります
ZODBで空間データを保存してきました。TCPまたはHTTPリクエスト(CouchDBなど)と比較して、ローカルファイルデータ(spatialite)またはunixソケット(PostGIS)にアクセスすることには、確かにいくつかの固有のパフォーマンス上の利点がありますが、空間インデックスを持つことが最大の違いになります。私はMongoDBの記事で言及されているのと同じRツリーを使用していますが、良いオプションがたくさんあります。JTSトポロジスイートには、Java用のさまざまな空間インデックスがあります。
Cassandraは、空間データのオプションでもあります。
http://www.readwriteweb.com/cloud/2011/02/video-simplegeo-cassandra.php
Tarantoolは、最近傍探索、オーバーラップ、包含、およびその他の空間演算子を使用して、空間2次元インデックス(RTREE)をサポートします。Tarantoolはデータセット全体をRAMに保持し、空間インデックスをサポートする唯一のOSSインメモリデータベースになります。 https://github.com/tarantool/tarantool/wiki/R-tree-index-quick-start-and-usage
MarkLogic(Enterprise NoSQL)は空間機能を提供します。このNoSQL製品は、GISアプリケーションに複数のオブジェクトを1つのエンティティに統合する機能を提供します。これにより、構造化コンテンツと非構造化コンテンツ、データに関する来歴と血統情報、履歴情報とタイムライン情報などの関係を単一のエンティティで管理するためのサポートが提供されます。