2011-03-15 129 views
3

在工作中,我們正在考慮從Oracle遷移到NoSQL數據庫,因此我必須對Cassandra和MongoDB進行一些測試。我必須將大量表格移動到NoSQL數據庫,這個想法是讓這兩個平臺之間的數據同步。將數據從Oracle遷移到Cassandra和/或MongoDB

因此,我創建一個簡單的程序,使選擇到Oracle DB中,並插入到mongo中。我的一些同事指出,也許有一種更容易(更專業)的方式來做到這一點。

以前有人有過這個問題嗎?你如何解決它?

回答

8

如果您的目標是將現有結構從Oracle複製到NoSQL數據庫,那麼您應該首先重新考慮您的移動。通過這樣做,您將失去從非關係數據存儲中看到的任何好處。

好的第一步是長時間觀察現有結構並確定如何修改它以影響對應用程序的正面影響。另外,同時考慮一個混合系統。 Cassandra很適合很多事情,但是如果您需要一個關係系統並且已經使用了很多Oracle功能,那麼對於大部分數據庫來說,留在Oracle中可能很有意義,同時移動需要頻繁寫入的部分,並且會受益於Mongo或Cassandra的不同結構。

一旦你做出關於你的結構的決定,我會建議編寫腳本/程序/添加一個模塊到你現有的應用程序,以新格式寫入數據到新的數據存儲。這將使您對流程中的每一步都有最細緻的控制,這在整個系統範圍的體系結構變化中是我想要的。

1

您也可以考慮使用Hadoop生態系統的組件來執行此類(ETL)任務。爲此,您需要按照需求對Cassandra DB進行建模。 步驟可能是將您的oracle表數據遷移到HDFS(最好使用SQOOP),然後編寫Map-Reduce作業來轉換此數據並插入到Cassandra數據模型中。