簡體   English   中英

使用mongodb或cassandra的空間數據

[英]Spatial data with mongodb or cassandra

我正在考慮處理大量數據的概念證明,例如> 10 G,這需要每秒至少200次寫入和每秒大約50次以上的空間相關數據讀取。 這也是一個不斷發展的系統。 目前我正在考慮出於性能原因將這個大容量數據轉移到NoSql大表類數據庫中。

我已經考慮並仔細研究了MongoDB和cassandra。 就我的閱讀而言,

Mongodb: - 似乎有一個編寫器鎖定問題 - 如果不需要多個服務器,stackoverflow中的一個帖子建議使用此數據庫 - 索引保留在內存中。 因此,指數增長越大,性能就越差 - Mongodb直接支持空間數據和索引以及查找附近位置等功能,我看到這個帖子 - 我看到這篇文章Cassandra或MongoDB對於我們基於位置的應用建議mongodb作為最佳選擇

卡桑德拉:
- 似乎是相關dbs中最好的 - 似乎有很好的寫入和讀取性能 - 本身不支持空間索引,但這可以通過geohashing擴展

我的心實際上是因為其良好的文檔和對空間數據的直接支持而為mongodb服務。 是否有任何機構在使用mongodb進行大型系統方面有不良經驗? 我實際上在mongodb iostat上看到很多關於性能的帖子。

如果mongodb不適合,有人可以使用cassandra給出一些關於geohashing的指示嗎? 我看到http://code.google.com/p/geospatialweb/鏈接用於創建哈希。 但是如何查詢等問題呢?

我意識到這是一個較老的問題,我知道它並沒有直接回答你的問題,但根據你的疑問,Cassandra可能不是最好的選擇,而且你的查詢在MongoDB中使用索引也可能會有問題(根據我自己的經驗)。 Mongo與Cassandra略有優勢,可以獲得重要的地理數據和查詢。

我建議也考慮調查ElasticSearch,根據您的數據形狀和您將要進行的查詢類型可能是最佳解決方案。 當你發布你的問題時,它可能不是今天的選項。

試試Cassandra + Solr。 這可能很有用: http//digbigdata.com/geospatial-search-cassandra-datastax-enterprise/

此致,Goutham Kumar

TL;博士
Elassandra是Cassandra和ElasticSearch的組合。

從未來的一點點更新。

我目前正在為大數據實時系統創建一個概念,還需要存儲地理空間數據並進行大規模查詢。 最后幾天我做了很多研究,如何正確地安排數據,並能夠支持地理空間索引和查詢,如邊界框。

我讀到的第一個是PostgreSQL + Postgis,但最大的實例限制為最大200k寫入/秒。
第二個是地理空間數據庫Tile38 ,它能夠擴展查詢但不能擴展寫入。 這樣做的唯一方法是手動分片數據。
第三個是MongoDB,因為在那里你可以找到一個支持我需要的地理空間功能的好文檔,但是如果能夠擴展寫入,很難決定。
所以最后一個數據庫是Cassandra。 該數據庫以水平寫入縮放和故障接管而着稱。 與Cassandra的權衡是,查詢數據的性能不佳,並且不支持開箱即用的地理空間。 對於大規模查詢數據,ElasticSearch是一個很好的解決方案,正如Tracker1已經建議的那樣。 今天我找到了一個由Cassandra和ElasticSearch組成的新數據庫,名為Elassandra ,它允許大規模寫入,並且可以近實時地大規模讀取數據。 到目前為止,對我來說是最好的解決方案,只需最少的設置和維護工作。

我們目前也使用Cassandra並尋找空間索引解決方案。 我們選擇Lucene來提供全文和歸因搜索,並隨之支持spartial索引。 也許你想檢查這個。

我們當前的實現類似於基於簡單樹(基於網格)對信息進行分片,並且每個分片都是Lucene索引,並且一旦它增長超過一定大小,索引就會被x或y分割。 並且由於這樣的分片具有二進制表示(網格中的位置由兩個位組成,下一個級別接下來是2位,依此類推),由位置發出搜索,並且將由位置/網格分辨率的任何分片帽子前綴應答。 到目前為止,簡單的系統運行良好,但目前尚未高效使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM