В этом посте я просто хочу показать, как легко начать работу с Couchbase, а также объяснить, как «запрашивать» данные. Основные шаги этого урока:
- Установить Couchbase
- Создать данные
- Данные запроса
Я постараюсь опубликовать больше статей, если у меня будет время показать, как использовать Couchbase из ваших приложений (начиная с Java).
Предпосылки:
- Не может быть проще: Couchbase 2.0 доступна здесь . (В настоящее время в предварительной версии для разработчиков)
Couchbase 101: вставка и запрос данных Установка
Я использую Couchbase в Mac OS X, поэтому позвольте мне описать установку в этой среде. Если вы используете другую операционную систему, просто посмотрите документацию Couchbase.
Установка на Couchbase очень (очень!) Быстра:
- Загрузите Zip-файл Mac OS X.
- Дважды щелкните загруженный установочный файл Zip, чтобы извлечь содержимое. Это создаст один файл, приложение Couchbase.app.
- Перетащите файл Couchbase.app в выбранную папку установки, например в папку системных приложений.
Запустите и настройте сервер Couchbase
Чтобы запустить Couchbase Server, просто дважды щелкните по Couchbase Server. Как только сервер запущен, в OS X Menu добавляется новый значок, указывающий, что Сервер запущен и работает.
Теперь вы можете настроить свой экземпляр Couchbase, для этого вам просто нужно получить доступ к консоли администратора, доступной по следующему адресу http://127.0.0.1:8091 (при необходимости измените IP-адрес), или просто перейдя в меню Couchbase и нажмите на кнопку Открыть консоль администратора.
- Экран приветствия: нажмите «Настройка»
- Установите конфигурацию диска и кластера. В моем случае я сохраняю расположение по умолчанию для хранения на диске. Просто настройте размер использования памяти для вашего экземпляра, например, 800 МБ. Пока что у нас есть один экземпляр, поэтому нет необходимости присоединяться к кластеру.
- Выберите для создания образца данных. Это будет интересно узнать больше о данных и представлениях.
- Создайте контейнер по умолчанию (используйте только для тестирования). Ведро используется Couchbase для хранения данных. Это можно сравнить с «базой данных» в мире РСУБД.
- Настройте уведомления об обновлениях, чтобы получать оповещения при выпуске новой версии Couchbase
- Сконфигурируйте сервер с последним шагом, используя имя пользователя и пароль администратора
- Когда это будет сделано, вы автоматически будете перенаправлены на консоль администратора.
Это оно! Вы готовы использовать свой сервер Couchbase.
Couchbase имеет много интересных функций, особенно в отношении масштабируемости и эластичности, но не в этой статье давайте сосредоточимся на основах:
- Вставьте некоторые данные и запросите их
Вставить данные
Couchbase имеет много способов манипулировать данными из вашего любимого языка программирования с использованием различных клиентских библиотек: Java, Python, PHP, Ruby, .Net, C. А пока давайте используем консоль администратора для создания и запроса данных.
Couchbase может хранить данные любого типа, но когда вам нужно манипулировать некоторыми данными со структурой, лучше всего использовать JSON Documents. Итак, давайте использовать консоль и создавать документы.
Для создания новых документов в вашей базе данных, нажмите на вкладку «Базы данных». Если вы установили пример, вы увидите 2 сегмента: default и gamesim-sample.
Давайте создадим новые документы в корзине по умолчанию:
- Нажмите на кнопку Документы
- Нажмите на Создать документ
- Поскольку каждый документ должен иметь идентификатор, например, 100.
- Couchbase сохранит документ и добавит некоторые метаданные, такие как _rev, $ flags, expiration
- Добавьте в документ новые атрибуты, которые описывают сотрудника: Имя, Департамент и Зарплата, затем сохраните его. Вам просто нужно обновить объект JSON значениями
{
«_Id»: «100»,
«Имя»: «Томас»,
«Отдел»: «Продажи»,
«Зарплата»: 5000
}
Повторите операцию с некоторыми другими сотрудниками:
|
1
2
3
4
5
|
200,Jason,Technology,5500300,Mayla,Technology,7000400,Nisha,Marketing,9500500,Randy,Technology,6000501,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. Обратите внимание, что этот ключ, значение теперь индексируется и сортируется по ключу. Это важно, когда вы запрашиваете ваши данные.
Итак, давайте создадим новый вид из консоли администратора:
- Нажмите на вкладку «Представления» (убедитесь, что вы находитесь в ведре по умолчанию)
- Нажмите «Создать вид разработки»
- Введите название документа и вида:
- Название документа: _design / dev_dept
- Название представления: отдел
Поскольку нам нужно предоставить список сотрудников, которые являются частью технологического отдела, нам нужно создать представление, использующее отдел в качестве ключа , поэтому функция карты выглядит следующим образом:
|
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 .

