一个SQL查询可以访问Java中的多个数据源(从oracle,excel,sql server)

前端之家收集整理的这篇文章主要介绍了一个SQL查询可以访问Java中的多个数据源(从oracle,excel,sql server)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要开发可以使用一个SQL查询从多个数据源(Oracle,Excel,Microsoft sql Server等)获取数据的应用程序.例如:
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程序动态变化.我的客户希望在同一时间从不同的数据库和存储中编写和运行类似sql查询,在我的应用程序的Web界面中使用group by,have,count,sum等.其他要求是性能和重量轻.

我找到这样做(我有什么缺点看,如果我错了,请解决我)

> Apache Spark(缺点:重解决方案,对BigData更好,
如果您需要获取最新的信息而不缓存它,则速度会很慢
在火花),
> sql Server中的分布式查询(Database link of Oracle,Linked
server of Microsoft SQL Server
,Power Query of Excel) – 缺点:
由Java程序动态更改数据源的问题
使用Excel的问题,
> Prestodb(缺点:重解决方案,BigData更好),
> Apache Drill(缺点:相当年轻的解决方案,有些问题没有
最新的odbc驱动程序和工作时的一些错误),
> Apache Calcite(Apache Drill使用的ligth框架,
缺点:相当年轻的解决方案),
>从数据源手动加入(缺点:很多工作
发展正确的联合,“组合”在结果集中,找到最佳执行计划等)

可能,你是否知道任何其他方式(使用免费的开源解决方案)或给我任何关于上述方式的经验的建议?任何帮助将不胜感激.

解决方法

其中一个适用的解决方案是具有JDO,JPA和REST API的 DataNucleus平台.它支持几乎每个RDBMS(Postgresql,MysqL,sqlServer,Oracle,DB2等)和Nosql数据存储,如基于Map,基于Graph的,基于Doc的数据库Web服务,LDAP,XLS,ODF,XML等文档.

或者,您也可以使用EclipseLink,它也支持RDBMS,Nosql,数据库Web服务和XML.

By using JDOQL which is part of JDO API,the requirement of having one query to access multiple datastore will be met. Both the solutions are open-source,relatively lightweight and performant.

@H_502_33@

为什么我建议这个解决方案?

>根据您的要求,它了解到数据存储将是您的客户选择,而您不是在寻找一个大数据解决方案.
>您喜欢开源解决方案,重量轻,性能优良.
>考虑到您的用例,您可能需要具有多沟槽持久性行为的数据管理平台,可以根据您/客户的用例利用多个数据存储.

To read more about polyglot persistence

07002

07003

@H_502_33@

猜你在找的MsSQL相关文章