Задания Spring Batch с поддерж... Заметка
Spring на русском

Задания Spring Batch с поддержкой MongoDB и многое другое в Spring Boot 4.1

Spring Batch исторически полагался на SQL-базы данных для своего JobRepository для хранения состояния выполнения задания. Это требование сохранялось даже для пользователей, в основном работающих с базами данных NoSQL, такими как MongoDB. Последние версии Spring Batch разъединили JobRepository с JDBC, а Spring Boot 4.1 вводит автоматическую настройку для MongoDB. Это позволяет хранить метаданные пакета в MongoDB, исключая необходимость в отдельной базе данных SQL. В статье демонстрируется полный пример задания Spring Batch, использующего MongoDB для своего JobRepository. Пример настраивает MongoDB и PostgreSQL с помощью Docker Compose. Он определяет задание ETL, которое читает данные о клиентах из CSV и записывает их в таблицу PostgreSQL. Это достигается за счет двухэтапного задания: одного для сброса таблицы назначения и другого для фактического передачи данных. Шаг передачи данных использует FlatFileItemReader, простой процессор и JdbcBatchItemWriter. Механизмы отказоустойчивости и повторных попыток настроены для этого шага на основе фрагментов. Затем приложение запускается, и все детали выполнения задания записываются в MongoDB. Наблюдаемость улучшается с помощью интеграции OpenTelemetry и Grafana. В статье также затрагивается возможность работы Spring Batch с родными образами GraalVM и вводятся ленивые соединения с источником данных для оптимизации. Основным выводом является то, что Spring Batch теперь без проблем интегрируется с MongoDB, позволяя разработчикам использовать свою предпочитаемую базу данных без компромиссов.