web-dev-qa-db-ja.com

NoSQLと空間データ

NoSQL(非リレーショナル)データベースを使用して空間データを格納した経験のある人はいますか?そのようなデータベースを使用して、たとえばデスクトップアプリケーションのデータを保持することの潜在的な利点(速度、スペースなど)はありますか(SpatiaLiteまたはPostGISを使用する場合と比較して)?

空間データにMongoDBを使用することについての投稿 を見てきましたが、パフォーマンスの比較に興味があります。

37
Igor Brejc

Neo4j のようなグラフデータベースは、特に、さまざまなインデックススキームを動的に追加できるため、非常に適しています。ベースデータで実行できる一般的な操作は、もちろん1Dインデックス作成(TimlineやB-Treesなど)またはヒルベルト曲線などのファンキーな操作です。 Nickのブログ を参照してください。また、いくつかのライブデモンストレーションについては、AWEオープンソースGISデスクトップツール ここ を見てください。基になるインデックス付きグラフは07:00頃に表示されます。

11
Peter Neubauer

Couchdbには単純な空間拡張もあります

http://vmx.cx/cgi-bin/blog/index.cgi/category/CouchDB

5
TheSteve0

現在、MongoDBはPostGISのRツリーよりも遅いBツリーでジオハッシュを使用しています(正確な数を与えることはできませんが、恐れていますが、違いに関する理論的な文献はたくさんあります)。ただし、これらのスライドでは、 http://www.slideshare.net/nknize/rtree-spatial-indexing-with-mongodb-mongodc 著者はRツリーをMongoDBに追加し、ジオキー。デスクトップの使用について話しているので、大規模なデータセットでシャーディングの利点がより感じられるため、ジオシャーディングは重要ではない可能性があります。最終的には、おそらく空間データで何をしたいのかということになります。 Postgisは、トポロジー、ラスター、3D、座標系間の変換をサポートする機能がはるかに多いため、これがあなたが探しているものである場合でも、PostGISが最良のオプションです。数十億/兆の空間オブジェクトを格納し、基本を実行するだけで、いくつかの基準に基づいてこのポイントの近く/内部のすべてのポイントを検索する場合は、MongoDBが非常に適しています。

5
John Powell

ZODBで空間データを保存してきました。 TCPまたはHTTPリクエスト(CouchDBなど)と比較して、ローカルファイルデータ(spatialite)またはunixソケット(PostGIS)にアクセスすることには、いくつかの固有のパフォーマンス上の利点がありますが、空間インデックスがあると最大の違いがあります。MongoDBの記事で説明したものと同じRツリーを使用していますが、適切なオプションがたくさんあります。JTSトポロジスイートには、Java用のさまざまな空間インデックスがあります。

2
sgillies

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

1
Kostja

MarkLogic(Enterprise NoSQL)は空間機能を提供します。このNoSQL製品は、GISアプリケーションに複数のオブジェクトを1つのエンティティに統合する機能を提供します。これにより、構造化コンテンツと非構造化コンテンツ、データに関する出所と血統情報、履歴情報とタイムライン情報などを単一のエンティティで管理するためのサポートが提供されます。

0
Richard Lewis