我计划将一些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。
答案 0 :(得分:2)
通过阅读你的问题,我不知道你的方法是什么。在NoSQL数据库(例如couchbase)中 - 您不知道表和列。每个对象都序列化为JSON并以纯文本格式存储。是的,这会产生重复,但可扩展性的好处远远超过了重复的缺点。
在此示例中,使用Couchbase,您可能希望为每个应用程序创建一个Couchbase存储桶。这样,如果您需要在以后迁移到其他Couchbase群集,则需要进行少量配置。表中的每一行都在Couchbase中创建为一个单独的对象。无需在存储桶中分离对象类型。
This blog entry包含有关如何从mySQL迁移到Couchbase的详细说明。
另外,我建议您使用Couchbase和Elasticsearch。