Доступ к нескольким источникам данных с использованием 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.