非常新手問題,我認爲..我開始玩ES和MongoDB,我試圖將數據移出SQL DB作爲練習。 我不禁想知道,我會在Mongo中存儲哪些數據,以及ES中有哪些數據?我可以在ES中儲存所有東西嗎?假設大數據加載,如在價格趨勢。ElasticSearch&Mongo
回答
首先,MongoDB就是所謂的文檔存儲。這種概念的主要特點是存儲架構的動態文檔:
- 在文檔集合中的每個記錄可以具有不同的結構
- 的每個記錄類型可以是不同的
- 文檔屬性(列)可以有嵌套結構
它不是無模式的,它是模式動態的(或靈活的模式)。爲了進入這個概念,你可以在這裏找到一個很好的教程:https://docs.mongodb.org/manual/data-modeling/
MongoDB是最廣泛使用的文檔存儲 - 請參閱http://db-engines.com/en/system/MongoDB。
它具有大多數編程語言的「驅動程序」,可實現快速開發。您可以很快進入Mongo,有很多教程和官方Mongo大學 - 這對於開發人員和DBA來說是一個很好的課程。
簡而言之,它支持索引,聚合,過濾器,負載平衡,分片,複製(副本集)等。數據以BSON格式(http://bsonspec.org/)存儲和傳輸。 https://docs.mongodb.org/manual/reference/sql-comparison/
這是什麼好:
的MongoDB VS RDBMS概念的比較好的可以在這個官方參考可以找到?它支持敏捷開發,模式可以在一段時間內改變,尤其是基於表單的數據,用戶生成的內容,基於位置的數據,用戶配置文件等。它還可以存儲大量文檔(每個文檔最多16MB)。
現在,Elasticsearch不是數據庫。它是一個搜索引擎,具有一些很好的聚合功能(https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations.html - 請確保簽出度量標準,存儲桶和管道聚合)。
典型的RDBSM不適用於全文搜索或鬆散結構化的數據。 ES中的查詢可以比任何數據庫更快地返回結果(例如,與ES中的毫秒相比,RDBMS中的秒數)。你需要記住一個關鍵是設計好索引,並且它們會佔用你的磁盤空間。
有一篇非常詳細的文章比較兩個表現,你可能會發現它很有用:http://blog.quarkslab.com/mongodb-vs-elasticsearch-the-quest-of-the-holy-performances.html。
實際上,您可以同時使用兩者 - MongoDB將存儲您的數據,其中ES將用作服務層(搜索,聚合等)。
mongodb和ES之間有很大的區別。 MongoDB是一個爲了存儲數據和查詢而設計的數據庫,而elasticsearch是一個lucene基礎索引器,在這個索引器中,您只應該爲搜索索引數據,而不應該相信elastisearch。即使你可以在彈性搜索中使用store:true,也不建議這樣做,我不會依賴那些重要的數據。
- 1. Elasticsearch mongo-connector KeyError _id
- 2. 從Mongo刪除到Elasticsearch
- 3. 由Mongo過濾ElasticSearch結果_id
- 4. 未在ElasticSearch中添加Mongo'_id'字段
- 5. 爲什麼在Mongo中使用ElasticSearch?
- 6. 將mongodb和elasticsearch連接到mongo連接器
- 7. 是否有可能在elasticsearch中使用單個mongo-river meta導入多個mongo集合?
- 8. 從mongo連接器到elasticsearch的索引有條件的(來自mongo的選擇性文檔)
- 9. activerecord和mongo/mongo-mapper bridge
- 10. mongo:獲取mongo shell中
- 11. php5-mongo和pecl mongo-stable
- 12. 有沒有辦法將兩個mongo集合索引到ElasticSearch中的一箇中?
- 13. 如何使用mongo連接器與elasticsearch進行自定義映射
- 14. Mongo查詢在mongo shell中運行,但不在bash mongo中--eval?
- 15. 將mongo查詢翻譯成php mongo
- 16. Python Mongo:在查詢中使用'$或'mongo
- 17. Mongo:無法更新Mongo DB行
- 18. Mongo sharding無關機現有mongo實例
- 19. 查詢在elasticsearch在elasticsearch
- 20. ElasticSearch使用ElasticSearch NEST .NET庫
- 21. SpringData - Mongo - Aggregation
- 22. mongo objectid'contains'查詢
- 23. Flask和Mongo
- 24. mongo db.remove塊嗎?
- 25. Shanty Mongo Connection Groups
- 26. Mongo db meteor
- 27. Mongo $ in operator performance
- 28. Mongo NodeJS map reduce
- 29. Mongo @DBRef unique
- 30. RxJS5 Mongo問題
嗯,這實際上取決於你想要的東西,通常elasticsearch是用於很多很多你想要做文本搜索的內容,它爲此進行了優化。你可以用富有彈性的方式存儲永久存儲,但我認爲這不是平常的。這可能會幫助你https://www.compose.io/articles/mongoosastic-the-power-of-mongodb-and-elasticsearch-together/ – dege
謝謝@dege,文章有所幫助。 – kozureookami
我傾向於存儲與Elasticsearch搜索相關的部分內容,並將擴展數據保留在Mongo上。這使我可以在表示層向用戶呈現一流的點擊率。當用戶選擇他/她希望獲得進一步詳細信息的某個匹配時,我從Mongo中提取詳細信息。 –