Zorba больше, чем просто файловая система - PullRequest
0 голосов
/ 01 января 2019

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

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

1 Ответ

0 голосов
/ 03 января 2019

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 (например, connect,получить, поставить, обновить, удалить, ...).Параметры функций этого модуля могут быть объектами JSON или XML-документами, практически идентичными тем, которые фактически передаются в виде содержимого / тела в REST API (например, запрос по примеру).

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

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

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

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

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

...