Запрос нескольких источников данных вместе - PullRequest
0 голосов
/ 16 февраля 2020

У нас есть несколько источников данных, которые имеют более миллиарда записей в разных таблицах, большинство из них являются Oracle SQL источниками данных вместе с несколькими решениями No SQL. Основные поля имеют разные имена в разных источниках. SQL Запросы могут объединять таблицы только в определенном источнике данных. Запись REST API и сшивание данных в каждом API невозможны, так как наши запросы динамические c и могут со временем меняться.

Как мы можем решить эту проблему, могут ли серверы GraphQL помочь нам объединить несколько источников данных и выполнить запросы для каждого из них с различными условиями?

Что мы ищем - это язык запросов, который может выполнять запросы к различным источникам данных, stitch они вместе основаны на определенных условиях, таких как запросы на соединение и возвращают нам набор результатов.

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

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

СОЗДАТЬ ССЫЛКУ БАЗЫ ДАННЫХ dblink1 ПОДКЛЮЧИТЬСЯ к пользователю1 ИДЕНТИФИЦИРОВАНО ПО ЛИЦУ1 С ИСПОЛЬЗОВАНИЕМ 'connect1';

СОЗДАТЬ ССЫЛКУ БАЗЫ ДАННЫХ dBlink2 ПОДКЛЮЧИТЬСЯ к пользователю2 ИДЕНТИФИЦИРОВАНО С помощью пароля2 ИСПОЛЬЗУЯ 'connect2';

выберите * из table1@dblink1 AS t1, table2@dblink2 AS t2, где t1.userid = t2.userid и t2.duration> 2000;

Примечание: ссылка на БД должна быть создана один раз, выбор может быть повторен много раз.

CREATE DATABASE LINK имеет много опций, но я надеюсь, что идея поможет.

0 голосов
/ 19 февраля 2020

Нет соединения SQL здесь: Нет SQL соединения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...