Имеется таблица 6 ГБ (oracle 12), которая меняется примерно каждую 1 секунду (удаление, вставка, обновление).
У меня есть приложение restful, которое использует hibernate для вызова базы данных с некоторыми фильтрами для получения данных из этой таблицы БД. бывают случаи, когда «пользователь» хочет получить данные 1 ГБ из таблицы как отчет csv или xlsx, выбор и выборка данных из базы данных занимает слишком много времени.
поэтому я подумал, может быть, лучше взять всю эту таблицу БД в объект Java (в кучу) и выполнить поиск и экспорт непосредственно из этого объекта.
но есть проблема:
мой объект Java должен быть синхронизирован с таблицей базы данных Oracle.
Каков наилучший способ прослушивания / отслеживания изменений таблицы оракула из Java?
один из известных мне способов - это утилита oracle UTL_HTTP , которая может вызывать веб-сервис напрямую из оракула, и с помощью этой утилиты информирует сервис об изменениях данных.
Может ли hibernate также прослушивать изменения таблицы оракула, которые не инициируются из той же службы? Я имею в виду, возможно ли, что APP1 прослушивает некий оракул table_1, а когда APP2 меняет некоторые данные на oracle table_1, APP1 автоматически это знает. если возможно, приведите несколько примеров.
Кроме того, мне интересно, что вы думаете об импорте данных всей таблицы в службу и создании фильтров для этого объекта, будет ли он легким? (Я знаю, что ~ 6 ГБ памяти будет всегда использоваться)