2015-06-24 106 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