Поклонники баз данных NoSQL теперь могут больше порадоваться выпуску Couchbase Server 2.0 вместе с языком запросов NoSQL под названием UnQL.
Couchbase была разработана компанией, образованной в результате слияния Membase и CouchOne.
Согласно анонсу новый сервер
«Сочетает в себе непревзойденные возможности управления эластичными данными Membase Server с возможностями распределенного индексирования, запросов и мобильной синхронизации Apache CouchDB».
На практике CouchDB обрабатывает хранение данных, индексацию и распределенные запросы, в то время как компоненты Membase предоставляют технологию управления кластером, так что сервер может масштабироваться от одного до сотен узлов. Membase также отвечает за элементы управления, мониторинга и оповещения. Memcached, встроенный в Couchbase Server, заботится о кэшировании в памяти.
Хотя доступность CouchBase 2 — хорошая новость, анонс UnSQL привлекает все больше внимания. Цель состоит в том, чтобы сделать UnSQL стандартным языком запросов для неструктурированных баз данных, SQL для NoSQL,
UnSQL был создан Дэмиеном Кацем (мозгом CouchDB) и Ричардом Хиппом (создателем SQLite). UnQL доступен на www.unqlspec.org, и дальнейшее развитие языка открыто для участия пользователей, поставщиков и академического сообщества.
Согласно Couchbase, UnQL похож на SQL по синтаксису с дополнительными возможностями, позволяющими выбирать и манипулировать сложными структурами документа. Сам SQL не подходит для использования с базами данных NoSQL из-за отсутствия в них схем баз данных, а это означает, что вы можете ожидать создания запросов, не зная, с какими типами документов вы работаете в базе данных. UnQL преодолевает это, позволяя создавать запросы, которые смотрят на данные в документах, а не ожидают, что запрос знает, какой тип данных присутствует.
Вы можете просмотреть текущую информацию о UnQL здесь: http://www.unqlspec.org/display/UnQL/Home, хотя, к сожалению, работа над разделом примеров запросов все еще продолжается.
Язык основан на заявлении Explain, которое само по себе состоит из многих знакомых по звучанию ключевых слов — Select, Insert, Update, Begin, Commit, Rollback, но отличие состоит в том, что они применяются к коллекциям неструктурированных данных.
Кроме того, вы получаете Pragma и Create and Drop Collection, а не Create and Drop Table. Затем Select имеет все знакомые предложения — From, Where, Group, Have, но опять же, они относятся к коллекциям, а не к таблицам. Pragma основана на расширении SQLite (http://www.sqlite.org/pragma.html), а не на директиве Oracle/PLSQL Pragma.
Без некоторых примеров трудно с уверенностью сказать, насколько революционным будет UnQL. Разработчики говорят, что «скоро» опубликуют примеры и некоторые другие подробности.