【问题标题】:Querying multiple Data Sources together [closed]一起查询多个数据源[关闭]
【发布时间】:2020-05-31 19:40:40
【问题描述】:

我们有多个数据源,在不同的表中有超过 10 亿条记录,其中大部分是 Oracle SQL 数据源以及少数 NoSQL 解决方案。主要字段在不同来源中具有不同的名称。 SQL 查询只能连接特定数据源中的表。在每个 API 中编写 REST 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

【问题讨论】:

    标签: sql node.js spring neo4j graphql


    【解决方案1】:
    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.
    

    【讨论】:

    • 这仅适用于 SQL 数据库,不适用于 NoSql 数据库。
    • 在您的问题中,两个表都是 Oracle SQL Server:表 1(Oracle SQL server 1)表 2(Oracle SQL server 2)。
    • 这只是一个例子,但我已经提到我们有 Oracle SQL 和一些 NoSql 数据库。我将编辑示例以添加 Mongo 集合
    猜你喜欢
    • 1970-01-01
    • 2019-06-15
    • 2017-04-26
    • 2016-09-19
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多