Непрерывная репликация данных из Oracle в ElasticSearch
Команде, с которой я работаю, посчастливилось работать над редизайном огромной устаревшей системы с Oracle 12 на стороне базы данных. В настоящее время это программное обеспечение-монстр выполняет 10% операций вставки / обновления / удаления в БД, остальные 90% операций - это операции выбора (поиск некоторых объектов в таблицах с миллионами записей). И поиск, конечно, замедлился. Итак, наша первая мысль, конечно, состоит в том, чтобы иметь 2 одинаковых набора данных: Oracle DB и Elastic Search DB для выполнения поиска в Elastic, но хранить данные в Oracle и сразу же реплицировать данные в Elastic. Между Oracle и Elastic будет некоторая логика, написанная на C# для преобразования данных в формат Elastic Stack. Но на первый вопрос, на который у нас нет ответа - как получить измененные данные из Oracle, как только они изменились? Первый найденный нами подход - использование непрерывного уведомления о запросах Но это можно использовать только для инициирования процесса передачи данных. Уведомление может содержать RowID измененной строки, но похоже, что количество событий уведомления об изменении строки может быть ограничено до 80. Второй подход - используйте некоторый "Репликатор данных" с открытым исходным кодом, который отслеживает "журналы транзакций". Единственный репликатор, который я нашел - OpenLogReplicator, он мне нравится, но я хочу спросить Stackruers, может, в моем случае это не сработает? Обратите внимание, что Oracle GoldenGate мы не можем использовать, клиент не примет это. Может ли кто-нибудь подсказать, какую технологию использовать для репликации изменений данных из Oracle?
2 ответа
OpenLogReplicator на данный момент находится на этапе создания рабочего прототипа. Он абсолютно не готов к производству и даже тестированию. Но вы можете связаться с автором, чтобы принять участие в POC и помочь в создании инструмента. Или купите один из имеющихся на рынке товаров.
SharePlex - более дешевая альтернатива GoldenGate. Поскольку вам нужна "немедленная" репликация, вам необходимо относительно сложное решение, с которым должны справиться и SharePlex, и GoldenGate.