Как читать из нескольких баз данных весной - PullRequest
0 голосов
/ 22 июня 2019

Я разрабатываю весеннее пакетное задание, в котором мне нужно читать из 4 разных баз данных (разных серверов).

Процесс идет примерно так

1)Чтение записей из db1

2) Отфильтруйте несколько с информацией в db2

3) Отфильтруйте еще немного с информацией в db3

4) Отфильтруйте еще немного с информацией вdb4

5) Сохранить отфильтрованные записи в db5

Мой подход

Для чтения из db1 , я могу использовать ItemReader (и предоставить значение чанка вшаг), а затем используйте несколько цепочечных процессоров для фильтрации, а затем JpaItemWriter.

Проблема с моим подходом

Проблема, с которой я думаю, что вышеупомянутый подход заключается в том, скажем, я получаю 100 000 записей из db1, мне нужно запросить db2, db3, db4 100 000 раз, потому что ItemProcessor будет вызываться для каждого элемента.

Возможное решение

1) Я думаю, проблемабудет решен, если процессор будет вызываться для каждого куска записей вместо1 запись.

2) Или если я могу связать пружинные считыватели так, чтобы один считыватель передавал данные (порция за порцией) другой, и там я мог просто отфильтровывать информацию на основе информации из другой базы данных и, наконец, переходить кпроцессор

Но я не уверен или не могу найти способ реализовать описанные выше решения, о которых думал.

Достаточно ли хороши эти решения ?, Если да, то как я могу их реализовать?

Или есть ли другой способ реализовать это?

Редактировать: Этот вопрос является возможным дубликатом, но решение этого вопроса не решит проблему вмой случай.

Поскольку у меня есть более 2 баз данных для чтения, а также если я пишу свою логику фильтрации в методе записи писателя, это выглядит как хак, потому что писатели не предназначены для какого-либо обогащения / фильтрации данных.

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