2010-09-27 27 views
2

我有一堆存儲在MySQL數據庫中的科學實驗的數據,但我想使用MongoDB利用其地圖/縮減功能來爲某些Web圖表提供動力。對MySQL進行新的寫入複製到Mongo中的最佳方式是什麼?一些解決方案,我檢查二進制MySQL日誌並進行相應更新,就像標準的MySQL複製一樣?如何設置從MySQL到MongoDB的複製?

謝謝! 亞歷克斯

回答

1

MySQL和MongoDB使用非常不同的數據和查詢的車型,所以你不能直接傳輸數據。

唉,在兩者之間移動數據必須手動完成,而且這麼做的效率很大程度上取決於您的數據。例如。您可以將每個錶轉移到一個單獨的集合中(大致是MongoDB-lingo中的表),並將表中的唯一屬性設置爲_id-attribute。或者,您可以將_id設置爲tablename+unique_id

基本上,由於文檔數據庫本質上是自由形式的,因此您可以自由地在無限期內發明自己的方案(只要_id-屬性在集合中是唯一的)。

+0

拍攝。聽起來像我需要創建自己的導入腳本,可能不使用日誌bin,但可能是一個簡單的cron作業。 – frontendbeauty 2010-11-05 01:24:40

+1

是的。看看'mongoimport';將您的SQL數據庫/表導出爲JSON(每行一行)並將其拖入MongoDB。我剛剛使用該過程將幾個千兆字節的數據從LDAP遷移到MongoDB,並帶來令人愉快的驚喜。 – 2010-11-05 15:20:58

0

我不熟悉MongoDB,但我的快速查找顯示它與mySQL不兼容,所以除非有人寫了某些東西來導入表單mySQL,否則你運氣不好。

您可以編寫自己的導入功能。

假設您的mySQL表使用增量唯一的'id'字段,您可以跟蹤mysql中的最後一行,然後在發生更改時將其發送給mongodb。

更改和刪除將更難以處理。如果這很重要,那麼從源頭插入數據可能是最好的選擇。

您是否需要將數據插入到mysql中?你可以在MongoDB中做到這一切,並保存所有的麻煩?

DC