2015-06-24 108 views
0

我打算將一些RDBMS表移動到NoSQL環境。我有不同的模塊和相關表格,如下所示。從MySQL遷移到Couchbase服務器(NoSQL)

1. General 
    News table 
    Trainings table 
    Knowledge table 
2. Application_x 
    Clicks table 
    Crashes table 

注意:這是一個示例方案

在這種情況下,這是我如何定義的NoSql(Couchbase server)結構。如果這是錯誤的,請糾正我。

遷移的目的主要是爲了搜索。

{ 
    "General":[ 
     "news" : [{ 
      "id" : "123", 
      "title" : "test title" 
     }, 
     { 
      "id" : "345", 
      "title" : "test title 2" 
     }], 
     "trainings" :[{ 
      "id" : "1", 
      "name" : "training 1" 
     }, 
     { 
      "id" : "2", 
      "name" : "training 2" 
     }], 
     "knowledge" :[{ 
      "id" : "1", 
      "categ" : "programming" 
     }, 
     { 
      "id" : "2", 
      "categ" : "management" 
     }] 
    ], 
    "Application_x": [ 
     "clicks" : [{ 
      "userid" : "1", 
      "area" : "1850", 
     }, 
     { 
      "userid" : "2", 
      "area" : "258", 
     }], 
     "crashes" :[{ 
      "userid" : "1", 
      "severity" : "1", 
     }, 
     { 
      "userid" : "2", 
      "severity" : "8", 
     }] 
    ] 
} 

如果我的方法不正確,有人能糾正我嗎?

在此先感謝, Tismon Varghese。

回答

2

通過閱讀你的問題,我留下了我的腦袋,你的方法是什麼。在NoSQL數據庫(如couchbase)中 - 你不知道表和列。每個對象都被序列化爲JSON並以純文本形式存儲。是的,這會造成重複,但重複的缺點遠遠超出了可伸縮性的好處。

在本示例中,使用Couchbase,您可能希望爲每個應用程序創建一個Couchbase存儲桶。這樣,如果您需要在日後遷移到其他Couchbase羣集,則需要進行最少量的配置。表中的每一行都被創建爲Couchbase中的單獨對象。沒有必要分開桶內的對象類型。

This blog entry包含一些關於如何從mySQL遷移到Couchbase的詳細說明。

在附註中,我可能會推薦使用Couchbase和Elasticsearch