Zorba不仅具有文件系统

时间:2019-01-01 19:24:40

标签: xquery zorba jsoniq

是否可以使用Zorba(和xquery / jsoniq)查询存储在文件系统以外的文件中?我看到了一个28毫秒的滑动甲板,其他人则暗示他们已经这样做了,但是我不确定该如何做。我不知道他们是否使用了第三方代码或其他代码。

我尝试并喜欢Basex,但是它不支持JSONiq,而且我认为它不会扩展。

1 个答案:

答案 0 :(得分:0)

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调用包装到模仿文档存储的JSONiq模块API中,从而自然地映射到基础存储。 REST API(例如,连接,获取,放置,更新,删除等)。该模块功能的参数可以是JSON对象或XML文档,与实际上作为内容/主体传递给REST API的参数(例如,以示例查询)完全相同。

在了解module syntax的情况下,这通常需要大约1000行代码和几天的时间,并且如果适用,可以轻松地与其他用户共享,例如在GitHub上,因为它主要是一个模块文件。某些此类模块可能在线提供。

还应该说Zorba也支持标准化的EXPath HTTP客户端(与另一个客户端相似,但是具有以XML格式而不是JSON传递的常规参数)。这意味着除Zorba之外,任何用于查询基于XML的文档存储的模块都应该可以与XQuery / JSONiq引擎互操作。

也可以支持不支持REST的文档存储,但这需要C ++编码,并且涉及更多。

既然您提到扩大规模,我还应该提到Sparksoniq,它可以扩大规模以查询存储在HDFS上的JSON数据(经过测试的数十亿个对象)。

希望这对您有所帮助。