虚拟联合sql数据库

问题描述

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

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

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

从技术角度讲,我很开放,但是Java是首选。 到目前为止,我正在考虑以H2项目为基础,并在那里进行修改

解决方法

要使用H2构造做到这一点,您将要实现TableEnginefeatures documentation says a little bit more about this。无需破解实际的H2源代码。

对于已经执行此操作的项目,请参见Apache Calcite:它将SQL解析器和查询优化器停放在various notions of what are basically key-value stores之上。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...