2015-06-24 2 views
0

Я планирую переместить некоторые из своих таблиц РСУБД в среду 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.

Смежные вопросы