一个 SQL 查询即可访问 Java 中的多个数据源(来自 oracle、excel、sql server)
我需要开发可以使用一个数据源(等)从多个数据源(等)获取数据的应用程序。例如:Oracle, Excel, Microsoft Sql Server
SQL query
SELECT o.employeeId, count(o.orderId)
FROM employees@excel e. customers@microsoftsql c, orders@oracle o
WHERE o.employeeId = e.employeeId and o.customerId = c.customerId
GROUP BY o.employeeId;
此 sql 和数据源必须由 java 程序动态更改。我的客户希望在我的应用程序的Web界面中同时编写和运行来自不同数据库和存储的类似sql的查询
,并按分组,具有,计数,求
和等。其他要求是性能和重量轻。
我找到了这种方式来做到这一点(如果我错了,我看到了什么缺点,请修复我):
Apache Spark(缺点:繁重的解决方案,对大数据更好,如果您需要在不缓存Spark的情况下获取最新信息,则速度较慢),
SQL Server中的分布式查询(Oracle的数据库链接,Microsoft SQL Server的链接服务器,Excel的Power Query) - 缺点:Java程序动态更改数据源的问题以及使用Excel的问题,
Prestodb(缺点:重度解决方案,对大数据更好),
Apache Drill(缺点:相当年轻的解决方案,一些不是最新的odbc驱动程序的问题和工作时的一些错误),
Apache Calcite(Apache Drill使用的ligth框架,缺点:相当年轻的解决方案),
从数据源手动联接(缺点:开发正确联接需要大量工作,结果集中的“分组依据”,找到最佳执行计划等)
也许,您知道任何其他方式(使用免费的开源解决方案)或从您的经验中给我任何关于上述方式的建议?任何帮助将不胜感激。