Объявляем об общедоступном Couchbase Ruby SDK 3.0!

Автор: Арун Виджайрагаван

« Мы рады объявить об общедоступной версии Couchbase Ruby SDK 3.0! “

Полезные ссылки

Введение

Couchbase Ruby SDK позволяет вам подключаться к кластеру Couchbase из Ruby, используя упрощенный и высокопроизводительный API, который является расширением собственного Ruby. Наш SDK написан с учетом будущих функций сервера, обеспечивая поддержку таких возможностей, как Scopes и Collections, которые станут новым способом управления данными.

Совместимость

Couchbase Ruby SDK 3.0 — это

  • Совместим с любой версией MRI Ruby выше 2.5.0 включительно.
  • Полностью поддерживается для версии сервера Couchbase выше 6.0.0 включительно.

Более подробную информацию о совместимости можно найти здесь.

Установка

Вы можете установить Ruby, выполнив шаги, указанные на официальном Веб-сайте Ruby.

После установки Ruby установить версию Ruby SDK для Couchbase очень просто. В окне терминала просто введите следующую команду:

gem install couchbase

Мы также предоставляем репозитории gem с предварительно скомпилированными расширениями. Используйте их в случае, если компилятор C/C++ не может быть установлен на поле для сборки расширения во время установки gem. Дополнительные инструкции см. на этой странице: Примечания к выпуску и архивы Couchbase Ruby

Подключение к кластеру Couchbase

Соединение с кластером Couchbase Server представлено объектом Cluster. Кластер обеспечивает доступ к корзинам, областям и коллекциям, а также к различным службам Couchbase и интерфейсам управления.

Подключиться к Couchbase Cluster очень просто, все, что вам нужно сделать, это импортировать библиотеку cockbase и вызвать метод подключения для объекта кластера, передав учетные данные с помощью Параметры кластера, как показано ниже.

require "couchbase" # import couchbase library
include Couchbase
options = Cluster::ClusterOptions.new
options.authenticate("Administrator", "password")
cluster = Cluster.connect("couchbase://localhost", options)

Функции

Этот новый драгоценный камень поставляется с множеством новых и улучшенных функций, которые просты и менее многословны.

Ниже вы найдете основные моменты некоторых функций, проиллюстрированных примерами, которые используют Couchbase Server версии 6.5.1 в режиме предварительного просмотра для разработчиков с добавленными ведрами «путешествие-образец» и «пиво-образец».

Полный набор функций см. в нашей документации.

Операция "ключ-значение"

Операция «ключ-значение», также известная как служба данных, предлагает самый простой и быстрый способ извлечения или изменения данных, если известен ключ документа.

В примере используется коллекция Travel-Samples по умолчанию,

  • Создайте новый документ (обновите, если документ уже существует) с ключом "foo" .
  • Получите документ.
  • Удалить/удалить документ.
require 'couchbase'
include Couchbase
options = Cluster::ClusterOptions.new
options.authenticate("Administrator", "password")
cluster = Cluster.connect("couchbase://localhost", options)
bucket = cluster.bucket("travel-sample")
collection = bucket.default_collection
res = collection.upsert("foo", {"bar" => 42})
res = collection.get("foo")
puts res.content
res = collection.remove("foo")
puts res
cluster.disconnect

Операции с вложенными документами

Операции с вложенными документами можно использовать для эффективного доступа к частям документов с использованием путей к вложенным документам. Они могут быть быстрее и эффективнее в сети, чем полный документ такие операции, как upsert, replace и get, потому что они передают по сети только те разделы документа, к которым осуществляется доступ. Эти операции также являются атомарными, что позволяет безопасно изменять документы с помощью встроенного контроля параллелизма.

В приведенном ниже примере используются пути вложенных документов факс, электронная почта для изменения документа с ключом "customer123".

require 'couchbase'
include Couchbase
options = Cluster::ClusterOptions.new
options.authenticate("Administrator", "password")
cluster = Cluster.connect("couchbase://localhost", options)
bucket = cluster.bucket("default")
collection = bucket.default_collection
document = {
  name: "Douglas Reynholm",
  email: "[email protected]"
}
collection.upsert("customer123", document)
res = collection.mutate_in("customer123", [
  MutateInSpec.upsert("fax", "311-555-0151"),
  MutateInSpec.replace("email", "[email protected]"),
])

Запрос

Вы можете запрашивать документы в Couchbase, используя язык запросов N1QL, язык, основанный на SQL, но предназначенный для структурированных и гибких документов JSON. Запросы могут решать типичные задачи программирования, такие как поиск профиля пользователя по адресу электронной почты, логину в Facebook или идентификатору пользователя.

В приведенном ниже примере именованные параметры используются для извлечения 10 документов типа "hotel" из корзины `travel-sample`.

require 'couchbase'
include Couchbase
options = Cluster::ClusterOptions.new
options.authenticate("Administrator", "password")
cluster = Cluster.connect("couchbase://localhost", options)
options = Cluster::QueryOptions.new
options.named_parameters({type: "hotel"})
res = cluster.query("SELECT * FROM `travel-sample` WHERE type = $type LIMIT 10", options)
res.rows.each do |row|
  puts "#{row["travel-sample"]["country"]}. #{row["travel-sample"]["name"]}"
end

Аналитика

Служба аналитики Couchbase предоставляет возможность выполнять сложные специальные запросы для сбора информации об операционных данных, не препятствуя рабочим нагрузкам. Синтаксис запроса практически такой же, как у N1QL, что позволяет вам использовать свои знания SQL для выполнения аналитических запросов к данным JSON.

В приведенном ниже примере позиционные параметры используются для получения `количества аэропортов` во Франции из airports datasetcreated в сегменте `travel-sample`.

require 'couchbase'
include Couchbase
options = Cluster::ClusterOptions.new
options.authenticate("Administrator", "password")
cluster = Cluster.connect("couchbase://localhost", options)
options = Cluster::AnalyticsOptions.new
options.positional_parameters(["France"])
result = cluster.analytics_query('SELECT COUNT(*) AS airport_count FROM airports WHERE country = ?',options)
puts "Airports in France: #{res.rows.first["airport_count"]}"

Вывод

Надеюсь, вы уже взволнованы и готовы создать свое следующее приложение, используя этот новый драгоценный камень!

Если у вас есть какие-либо вопросы или отзывы, загляните в наше сообщество разработчиков. Мы хотели бы услышать от вас. Вы также можете проверить SDK на GitHub.

Удачного программирования!!!

Арун Виджайрагаван — главный менеджер по продуктам SDK и соединителей в Couchbase. Как лидер, ориентированный на клиентов, он стремится формировать будущее продуктов, принимая важные решения между производительностью, функциями и временем выхода на рынок. У него есть продемонстрированные способности и 20-летний опыт предоставления стратегических рекомендаций компаниям по запуску платформ для разработчиков и новых продуктов, чтобы объединить единое видение максимизации ценности продукта для бизнеса. Арун имеет двойную степень магистра в области физики и информационных технологий.