2010-04-05 21 views
2

我打算做一個網絡應用程序,它將最終使用Cassandra。但是現在我沒有它,也沒有服務器來運行它,我想首先使用MySQL。與卡桑德拉記在一起的MySQL應用程序

問題是,是否有可能以這樣的方式構建數據和查詢,以便稍後將它轉換到Cassandra?我想,主要想法是編寫MySQL查詢,這些查詢可能會更改爲相同的Cassandra查詢。

也許你有更好的建議?

回答

2

那麼,爲了最簡單的轉換,你可能只需要使用MySQL作爲鍵值存儲。 Cassandra允許比直接鍵值更復雜一些(基本上它允許子鍵),但是在MySQL中做這些將會非常棘手,而不會使最終的轉換工作變得更加困難。

因此,要將MySQL用作鍵值存儲,這意味着您只需創建一個包含兩列的表格key(應該是表格中的主鍵)和valuevalue可能需要爲text,如果您打算在其中存儲大量數據,但key可能只是varchar(255),除非您由於某種原因需要較大的密鑰。

然後,您只需將任何數據存儲在某個密鑰下,然後用密鑰將其恢復,就是這樣。稍後轉換爲Cassandra將非常簡單。

出於好奇,你爲什麼打算使用Cassandra?

+0

嗨乍得,謝謝你的答案。回覆。你最後的問題,我已經讀了一些關於不同NoSQL數據庫的特性,Cassandra似乎有能力,簡單和免費。 Re。 Cassandra的超級列,可以在MySQL中「模擬」嗎? – 2010-04-05 16:23:11

+0

可以模擬(僅僅通過有兩列以上的列),但它需要一些工作和一些代碼來實現,並且在遷移到Cassandra時不會像轉換那麼容易。如果你堅持直接的鍵值,你可以在幾分鐘內遷移到卡桑德拉。我問你爲什麼使用它的原因只是你是否真的需要它。最近看來,很多人都在抓住NoSQL的東西,只是因爲它很時髦,沒有一個真正的理由將它用於關係數據庫。 – 2010-04-05 17:23:45

+0

那麼擴大爲什麼我想使用NoSQL是因爲大多數數據將是無模式的。事實上,我打算同時使用SQL和非SQL數據庫 - SQL來存儲條目ID,本體或分類和它們之間的關係,以及無SQL以存儲具有任意字段的實際條目。 – 2010-04-05 21:44:47