Статьи

Couchbase 101: установить, хранить и запрашивать данные

Вступление

В этом посте я просто хочу показать, как легко начать работу с Couchbase, а также объяснить, как «запрашивать» данные. Основные шаги этого урока:

  1. Установить Couchbase
  2. Создать данные
  3. Данные запроса

Я постараюсь опубликовать больше статей, если у меня будет время показать, как использовать Couchbase из ваших приложений (начиная с Java).

Предпосылки:

  • Не может быть проще: Couchbase 2.0 доступна здесь . (В настоящее время в предварительной версии для разработчиков)

Couchbase 101: вставка и запрос данных Установка

Я использую Couchbase в Mac OS X, поэтому позвольте мне описать установку в этой среде. Если вы используете другую операционную систему, просто посмотрите документацию Couchbase.

Установка на Couchbase очень (очень!) Быстра:

  1. Загрузите Zip-файл Mac OS X.
  2. Дважды щелкните загруженный установочный файл Zip, чтобы извлечь содержимое. Это создаст один файл, приложение Couchbase.app.
  3. Перетащите файл Couchbase.app в выбранную папку установки, например в папку системных приложений.

Запустите и настройте сервер Couchbase
 
Чтобы запустить Couchbase Server, просто дважды щелкните по Couchbase Server. Как только сервер запущен, в OS X Menu добавляется новый значок, указывающий, что Сервер запущен и работает.
Теперь вы можете настроить свой экземпляр Couchbase, для этого вам просто нужно получить доступ к консоли администратора, доступной по следующему адресу http://127.0.0.1:8091 (при необходимости измените IP-адрес), или просто перейдя в меню Couchbase и нажмите на кнопку Открыть консоль администратора.

  1. Экран приветствия: нажмите «Настройка»
  2. Установите конфигурацию диска и кластера. В моем случае я сохраняю расположение по умолчанию для хранения на диске. Просто настройте размер использования памяти для вашего экземпляра, например, 800 МБ. Пока что у нас есть один экземпляр, поэтому нет необходимости присоединяться к кластеру.
  3. Выберите для создания образца данных. Это будет интересно узнать больше о данных и представлениях.
  4. Создайте контейнер по умолчанию (используйте только для тестирования). Ведро используется Couchbase для хранения данных. Это можно сравнить с «базой данных» в мире РСУБД.
  5. Настройте уведомления об обновлениях, чтобы получать оповещения при выпуске новой версии Couchbase
  6. Сконфигурируйте сервер с последним шагом, используя имя пользователя и пароль администратора
  7. Когда это будет сделано, вы автоматически будете перенаправлены на консоль администратора.

Это оно! Вы готовы использовать свой сервер Couchbase.

Couchbase имеет много интересных функций, особенно в отношении масштабируемости и эластичности, но не в этой статье давайте сосредоточимся на основах:

  • Вставьте некоторые данные и запросите их

Вставить данные

Couchbase имеет много способов манипулировать данными из вашего любимого языка программирования с использованием различных клиентских библиотек: Java, Python, PHP, Ruby, .Net, C. А пока давайте используем консоль администратора для создания и запроса данных.

Couchbase может хранить данные любого типа, но когда вам нужно манипулировать некоторыми данными со структурой, лучше всего использовать JSON Documents. Итак, давайте использовать консоль и создавать документы.

Для создания новых документов в вашей базе данных, нажмите на вкладку «Базы данных». Если вы установили пример, вы увидите 2 сегмента: default и gamesim-sample.

Давайте создадим новые документы в корзине по умолчанию:

  1. Нажмите на кнопку Документы
  2. Нажмите на Создать документ
  3. Поскольку каждый документ должен иметь идентификатор, например, 100.
  4. Couchbase сохранит документ и добавит некоторые метаданные, такие как _rev, $ flags, expiration
  5. Добавьте в документ новые атрибуты, которые описывают сотрудника: Имя, Департамент и Зарплата, затем сохраните его. Вам просто нужно обновить объект JSON значениями
    {
    «_Id»: «100»,
    «Имя»: «Томас»,
    «Отдел»: «Продажи»,
    «Зарплата»: 5000
    }

Повторите операцию с некоторыми другими сотрудниками:

1
2
3
4
5
200,Jason,Technology,5500
300,Mayla,Technology,7000
400,Nisha,Marketing,9500
500,Randy,Technology,6000
501,Ritu,Accounting,5400

Теперь у вас есть список сотрудников в вашей базе данных. Это было легко, не так ли? Давайте теперь запросить их.

Запросить доступ к данным документа непосредственно из его идентификатора

Прежде всего, вы можете быстро получить доступ к документу, используя простой HTTP-запрос, используя его идентификатор. Например, чтобы получить доступ к Mayla с идентификатором 300, просто введите следующий URL:

  • http://127.0.0.1:8092/default/300

В этом URL у вас есть:

  • 8092 — это REST-порт Couch API, используемый для доступа к данным (где 8091 — порт для консоли администратора)
  • по умолчанию это корзина, в которой хранится документ
  • 300 — идентификатор документа

Поиск ваших данных с запросами

Итак, мы увидели, как вы можете получить доступ к одному документу. Но что, если мне нужно это:

  • «Дайте мне всех сотрудников технологического отдела»

Для достижения такого запроса необходимо создать представления. Представления используются сервером Couchbase для индексации и поиска ваших данных. Представление — это функция Map, написанная на JavaScript, которая генерирует список значений ключей, который соответствует логике, которую вы поместили в функцию Map. Обратите внимание, что этот ключ, значение теперь индексируется и сортируется по ключу. Это важно, когда вы запрашиваете ваши данные.
Итак, давайте создадим новый вид из консоли администратора:

  1. Нажмите на вкладку «Представления» (убедитесь, что вы находитесь в ведре по умолчанию)
  2. Нажмите «Создать вид разработки»
  3. Введите название документа и вида:
      • Название документа: _design / dev_dept
      • Название представления: отдел
    1. Нажмите Сохранить
    2. Нажмите на ваш вид, чтобы редактировать его
    3. Поскольку нам нужно предоставить список сотрудников, которые являются частью технологического отдела, нам нужно создать представление, использующее отдел в качестве ключа , поэтому функция карты выглядит следующим образом:

      1
      2
      3
      function (doc) {
        emit(doc.dept, null);
      }

      Сохранить вид

      Эта функция берет документ и создает список, который содержит «dept» в качестве ключа и ноль в качестве значения. Само значение не так важно в нашем случае. Простое правило: не помещайте слишком много данных в значение, так как в конце сервер Couchbase создает индекс с этой картой. Увидим, что Couchbase позволяет разработчику легко получать информацию о документе при доступе к представлению.

      Нажмите на кнопку «Показать результаты», результат будет выглядеть так:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      {"total_rows":6,"rows":[
        {"id":"501","key":"Accounting","value":null},
        {"id":"400","key":"Marketing","value":null},
        {"id":"100","key":"Sales","value":null},
        {"id":"200","key":"Technology","value":null},
        {"id":"300","key":"Technology","value":null},
        {"id":"500","key":"Technology","value":null}
      ]
      }

      Как мы видели ранее, к документу можно обращаться по одному URL-адресу, он одинаков для представлений. Например, вы можете получить доступ к только что созданному нами представлению, используя следующий URL:

      Теперь можно использовать параметр запроса для фильтрации результатов, используя параметр ключа со значением, введенным с использованием строки JSON:

      Результат этого запроса теперь:

      1
      2
      3
      4
      5
      6
      {"total_rows":6,"rows":[
        {"id":"200","key":"Technology","value":null},
        {"id":"300","key":"Technology","value":null},
        {"id":"500","key":"Technology","value":null}
      ]
      }

      У вас есть много других параметров, которые вы можете использовать при доступе к представлению для управления размером, временем ожидания,…. Один из них довольно интересен — include_docs, который просит Couchbase включить в результат все содержимое документа. Так что если вы позвоните:

      Результат:

      1
      2
      3
      4
      5
      6
      {"total_rows":6,"rows":[
        {"id":"200","key":"Technology","value":null,"doc":  {"_id":"200","_rev":"1-1de6e6751608eada0000003200000000","$flags":0,"$expiration":0,"name":"Jason","dept":"Technology","salary":5500}},
        {"id":"300","key":"Technology","value":null,"doc":{"_id":"300","_rev":"1-f3e44cee742bfae10000003200000000","$flags":0,"$expiration":0,"name":"Mayla","dept":"Technology","salary":7000}},
        {"id":"500","key":"Technology","value":null,"doc":  {"_id":"500","_rev":"1-05780359aac8f3790000003200000000","$flags":0,"$expiration":0,"name":"Randy","dept":"Technology","salary":6000}}
      ]
      }

      Давайте теперь создадим немного более сложное представление, отвечающее следующему бизнес-требованию: «Дайте мне всех сотрудников с зарплатой от 5000 до 6000»

      Итак, теперь вы знаете, что вам нужно создать новое представление с окладом в качестве ключа, давайте со следующей функцией Map:

      1
      2
      3
      function (doc) {
        emit(doc.salary, null);
      }

      Couchbase автоматически сортирует ключ при создании / обновлении индекса, поэтому давайте будем использовать параметры startkey и endkey при вызове представления. Итак, давайте назовем представление со следующего URL:

      Результат:

      1
      2
      3
      4
      5
      6
      7
      {"total_rows":6,"rows":[
        {"id":"100","key":5000,"value":null,"doc":{"_id":"100","_rev":"1-0f33580d780014060000002e00000000","$flags":0,"$expiration":0,"name":"Thomas","dept":"Sales","salary":5000}},
        {"id":"501","key":5400,"value":null,"doc":{"_id":"501","_rev":"1-b1fe5bc79637720e0000003100000000","$flags":0,"$expiration":0,"name":"Ritu","dept":"Accounting","salary":5400}},
        {"id":"200","key":5500,"value":null,"doc":{"_id":"200","_rev":"1-1de6e6751608eada0000003200000000","$flags":0,"$expiration":0,"name":"Jason","dept":"Technology","salary":5500}},
        {"id":"500","key":6000,"value":null,"doc":{"_id":"500","_rev":"1-05780359aac8f3790000003200000000","$flags":0,"$expiration":0,"name":"Randy","dept":"Technology","salary":6000}}
      ]
      }

      Вывод

      В этой короткой статье вы научитесь:

      • Установить Couchbase
      • Создание данных с помощью консоли администратора
      • Запрос данных с представлениями

      Когда у меня будет больше времени, я напишу еще одну статью, которая делает то же самое с Java и другими языками.

      Ссылка: Couchbase 101: устанавливайте, храните и запрашивайте данные у нашего партнера по JCG Тугдуала Граля в блоге Tug’s Blog .