我们有多个数据源,这些数据源在不同的表中有超过10亿条记录,其中大部分是Oracle SQL数据源以及一些NoSQL解决方案。主字段在不同的源中具有不同的名称。SQL查询只能联接特定数据源中的表。编写REST API并在每个API中拼接数据是不可能的,因为我们的查询是动态的,并且可能会随着时间的推移而变化。
我们如何解决这个问题,GraphQL服务器可以帮助我们拼接多个数据源,并用不同的条件查询每个数据源吗?
我们寻找的是一种查询语言,它可以跨数据源进行查询,根据某些条件(如连接查询)将它们缝合在一起,并返回结果集。
Table 1(Oracle SQL server 1):-
|username | age | tenant |
abc 56 US
xyz 32 IN
Table 2 (Oracle SQL server 2):-
|userid | config | duration |
abc {..json.} 2100s
the query could be like:-
select * from table1, table2 where table1.userid=table2.username and duration>2000s发布于 2020-02-17 05:30:33
CREATE DATABASE LINK dblink1
CONNECT TO user1 IDENTIFIED BY password1 USING 'connect1';
CREATE DATABASE LINK dblink2
CONNECT TO user2 IDENTIFIED BY password2 USING 'connect2';
select * from table1@dblink1 AS t1, table2@dblink2 AS t2 where t1.userid=t2.userid and t2.duration > 2000;注意: DB Link应该创建一次,select可以重复多次。
CREATE DATABASE LINK has many options, but I hope the idea helps.https://stackoverflow.com/questions/60252869
复制相似问题