簡體   English   中英

將大型數據集導入MongoDB的最佳做法是什么?

[英]What are the best practices for importing large datasets into MongoDB?

我們只是給MongoDB一個測試運行並且已經設置了一個帶有Mongoid的Rails 3應用程序。 將大型數據集插入MongoDB的最佳做法是什么? 為了充實場景:說,我有一個書籍模型,想要從CSV文件中導入數百萬條記錄。

我想這需要在控制台中完成,所以這可能不是特定於Ruby的問題。

編輯添加:我認為導入的數據是包含關聯還是應該只進入一個模型會產生巨大的差異。 對任一場景的任何評論都歡迎。

MongoDB附帶了解析JSON格式數據的導入/導出工具。

假設您在SQL中有現有數據庫,遷移該數據的最簡單方法是將SQL數據輸出為JSON字符串,然后對每個集合使用導入工具。

這包括非規范化和嵌套/嵌入 - 所以不要將關系模型遷移到MongoDB,您還應該考慮重構數據模型以利用MongoDB功能。

例如,常見的任務是將文章和標簽合並到文章集合中,並將標記嵌入為數組。 在您的導出腳本中執行此操作,因此所有MongoDB都看到通過導入進入的干凈JSON很好:-)

你仍然可以將所有表作為集合導入,但是你錯過了MongoDB的一些真正優勢。

如果要僅添加此數據集一次。 您可以使用db/seed.rb文件。 您可以閱讀CSV並生成所有文檔。

如果你想做很多次,你可以做一個跑步者或任務。

使用任務,您需要定義lib/task/file.rake並使用您的文件生成任務,然后再次解析它並生成所有文檔。

你也可以成為一名runner

這與ActiveRecord的東西是一回事。

暫無
暫無

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

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