Zorba больше, чем просто файловая система

Можно ли использовать Zorba (и xquery/jsoniq) для запроса документов, хранящихся не в файловой системе? Я видел слайдер с 28 мсек и других, которые предположили, что они сделали это, но я не был уверен, как. Я не знал, использовали ли они сторонний код или что-то еще.

Я попробовал и мне понравился Basex, но он не поддерживает JSONiq, и я считаю, что он не масштабируется.

1 ответ

Zorba может запрашивать не только локальную файловую систему, но и любые документы, хранящиеся способом, доступным через REST API.

Во-первых, Zorba предоставляет несколько встроенных модулей для подключения к Couchbase, базам данных SQL и т. Д.

http://www.zorba.io/documentation/latest/modules/connectors

Во-вторых, поддержка большего количества магазинов может быть реализована с помощью модуля REST:

http://www.zorba.io/documentation/latest/modules/zorba/io/http-client

Для каждого нового поддерживаемого хранилища документов обычно создается новый определяемый пользователем модуль, который упаковывает вызовы REST в API модуля JSONiq, имитирующий вызов хранилища документов, таким образом, который естественным образом отображается на базовый API REST (например, подключиться, получить, положить, обновить, удалить,...). Параметры функций этого модуля могут быть объектами JSON или XML-документами, практически идентичными тем, которые фактически передаются в виде содержимого / тела в REST API (например, запрос по примеру).

Зная синтаксис модуля, это обычно занимает около 1000 строк кода и несколько дней, и, если это применимо, может быть легко передано другим пользователям, например, на GitHub, поскольку это в основном один файл модуля. Некоторые такие модули могут быть доступны онлайн.

Также следует отметить, что Zorba также поддерживает стандартизированный HTTP-клиент EXPath (аналогично другому, но с общими параметрами, передаваемыми в формате XML вместо JSON). Это означает, что любые модули, предназначенные для запросов к хранилищам документов на основе XML, должны даже взаимодействовать с механизмами XQuery/JSONiq, кроме Zorba.

Также могут поддерживаться хранилища документов, которые не поддерживают REST, но это требует кодирования C++ и значительно более сложное.

Поскольку вы упоминаете о масштабировании, я должен также упомянуть Sparksoniq, который масштабируется для запроса данных JSON (проверено до нескольких миллиардов объектов), хранящихся в HDFS.

Я надеюсь, что это поможет вам в дальнейшем.

Другие вопросы по тегам