0

我需要实现以下内容,并希望就如何最好地解决问题获得一些想法:

我有几个 SQL 数据库,并希望提供使用某种联合数据库的选项,即虚拟 SQL 层应该接收(只读)查询。这些查询应该针对每个单独的数据库执行,并合并为一个总结果并发送回查询的发送者。

因此,虚拟 SQL 层的任务将是接收初始查询、调用单个数据库并合并结果。此外,出于隐私原因,虚拟 SQL 层需要实施删除特定结果的规则。因此,我需要能够在虚拟层中编写自己的代码。

在技​​术方面我是开放的,但是,Java 将是首选。到目前为止,我正在考虑以 H2 项目为基础并在那里进行修改。

4

1 回答 1

1

要使用 H2 结构来做到这一点,您需要实现一个TableEngine. 特性文档对此做了更多说明。破解实际的 H2 源代码应该是不必要的。

对于已经这样做的项目,请参阅Apache Calcite:它将 SQL 解析器和查询优化器置于各种基本的键值存储概念之上

于 2020-08-16T17:52:17.543 回答