从MySQL迁移到Couchbase Server(NoSQL)

时间:2015-06-24 06:50:13

标签: mysql json couchbase nosql

我计划将一些RDBMS表移到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。

1 个答案:

答案 0 :(得分:2)

通过阅读你的问题,我不知道你的方法是什么。在NoSQL数据库(例如couchbase)中 - 您不知道表和列。每个对象都序列化为JSON并以纯文本格式存储。是的,这会产生重复,但可扩展性的好处远远超过了重复的缺点。

在此示例中,使用Couchbase,您可能希望为每个应用程序创建一个Couchbase存储桶。这样,如果您需要在以后迁移到其他Couchbase群集,则需要进行少量配置。表中的每一行都在Couchbase中创建为一个单独的对象。无需在存储桶中分离对象类型。

This blog entry包含有关如何从mySQL迁移到Couchbase的详细说明。

另外,我建议您使用Couchbase和Elasticsearch