2011-06-28 64 views
0

我試圖通過遍歷行,獲取數據並從相應的MySQL行插入正確的MongoDB信息來將MySQL數據庫遷移到MongoDB數據庫。我想知道最好的方式來訪問原始.SQL文件(在Ruby中),所以我可以把它放進一個Hash。從SQL數據庫源文件寫入MongoDB的最佳方式是什麼?

+0

這是一個文本文件。像任何其他文本文件一樣訪問它。但是,您幾乎肯定希望將數據導出爲另一種格式,解析SQL可能是一個糟糕的想法。 – geoffspear

回答

0

因此,從SQL到MongoDB有幾個常見的策略。

  1. 將SQL數據庫轉儲爲CSV,使用CSV上的mongoimport拉入MongoDB。
  2. 使用現有的驅動程序並編寫一個循環SQL DB並插入到MongoDB中的腳本。

方法#1適用於基本數據集,但它可能有一些二進制數據的問題。我通常建議不要#1,除非你能確認它的工作正常。

方法#2一般建議。

這個過程會因語言而異,但應該很簡單。只需從MySQL查詢所有數據,將這些數據轉換爲MongoDB所需的格式,然後執行插入。

有到做這樣幾個好處:

  1. 容易地跟蹤進度。如果你有很多數據,你可以讓你的腳本記錄進度。
  2. 易於重新運行。您很可能需要重新運行這些「轉儲」的部分內容。有一個可重複的腳本是可取的。
  3. 測試您的代碼。一旦切換完成,您最終需要將新項目插入到MongoDB中。這是測試您的對象構建工作的好方法。
  4. 模式更改。這是非常不大可能你的MongoDB模式將完全像你的MySQL模式。事實上,你可能不希望它像你的MySQL模式。您可能會將數據合併並組合到新的數據結構中。你會想一次把它們放在一起。
相關問題