除数据日志外,CRUX数据库引擎还添加了SQL支持

2020-08-04 21:19:51

CRUX是一个具有双临时图形查询…的开源文档数据库。SQLSQL目前是Alpha版,不支持​,但是您可以使用Datalog query接口来读取和遍历关系。

我们是Datalog和它所赋予的力量的粉丝。尽管它不是直接兼容的并且可能会进一步漂移,但是我们已经将我们的Datalog query API建立在Datomic的基础上,在Datalogis中,Datalogis表示为模式匹配的声明性数据结构。

Datalog易于构造和解析,并且很自然地将自定义谓词和规则用作逻辑模式匹配的一部分。

我们喜欢Datalog,但公平地说,相当大一部分潜在用户会想要使用SQL。无论是想要在不需要了解Datalog的情况下运行即席SQL查询的用户,还是想要在以SQL为通用语言的系统之间进行集成的用户,我们都支持它,这一点很重要。

我们在Crux中创建了一个新的CRUX-SQL模块,它使用Apache calcite SQL查询计划引擎。Calcite是一个强大的库,用于针对任意数据源公开SQL查询,并已与各种DBMS(如Cassandra、Mongo和Elastic)以及大数据系统(如Have、Drill、Flink和Dremio)集成。

方解石已经存在很长一段时间了,而且仍然非常活跃。我们感谢方解石团队在这个工具上所做的工作和它所提供的力量,以及围绕它建立起来的友好社区。

我们将方解石进程内作为Crux节点的一部分运行,因此不需要设置任何额外的基础设施。相反,您只需要添加CRUX-SQL模块依赖项:

我们集成了方解石,以便将SQL查询转换为高效的Datalog查询,包括排序和内部联接。

请访问模块自述,了解如何开始一些简单的步骤,或观看此视频:

CRUX-SQL模块允许使用Avatica进行进程内SQL查询和远程JDBC查询。这在文件里都有报道。