Доступ к нескольким источникам данных с использованием Oracle Brio

Попытка построить панель мониторинга, используя Oracle Brio. Мне нужно получить доступ к 6 различным базам данных, чтобы получить данные одного типа, объединить их и отобразить. За исключением того, что, когда я делаю это, Брио просто отлично получает данные из первого источника. Когда я получаю данные из второго источника данных, Brio заменяет исходные данные вторым набором. Поэтому я не могу агрегировать данные. Может кто-нибудь помочь мне понять, как я могу сделать это в Brio, пожалуйста?

2 ответа

Вам нужно использовать оператор UNION, а не выполнять запрос 6 раз.

Например:

Не делай этого

SELECT * FROM DATABASE_1..TABLE_1
GO
SELECT * FROM DATABASE_2..TABLE_1
GO
SELECT * FROM DATABASE_3..TABLE_1
GO

Сделай это вместо

SELECT * FROM DATABASE_1..TABLE_1
UNION
SELECT * FROM DATABASE_2..TABLE_1
UNION
SELECT * FROM DATABASE_3..TABLE_1
GO

Если вы используете разные файлы OCE для каждого источника - как вы, вероятно, - то нет простого способа сделать это. Вам понадобится отдельный запрос для каждого файла OCE

Если все ваши базы данных можно найти в одном файле OCE, вы можете использовать трюк UNION; Более того, в Brio это называется "Добавить запрос". Просто убедитесь, что вы строите запрос идентично первому запросу с точки зрения того, что он возвращает; все заголовки столбцов будут из него.

Если вам нужно объединить различные запросы в один раздел результатов, я обнаружил, что самый простой, ну и единственный, способ сделать это, используя только стандартные функции Brio, состоит в том, чтобы объединить каждый набор с помощью полного внешнего объединения в каждом поле. а затем объединить каждое поле вместе... но это ужасно неэффективно и не закончится для больших файлов. Возможно, вам лучше будет отсортировать файлы и написать подпрограмму javascript для их совместного анализа, либо в первую очередь выполнить все это за пределами Brio.

Другие вопросы по тегам