Spring Batch записывает несколько фрагментов одновременно/агрегирует запись фрагментов после достижения порогаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Batch записывает несколько фрагментов одновременно/агрегирует запись фрагментов после достижения порога

Сообщение Anonymous »

Я использую Spring Batch впервые.
В настоящее время моя настройка следующая:
  • один модуль чтения Kafka, один процессор элементов, один модуль записи JDBC (пользовательский)
  • читатель Kafka считывает элементы из Kafka
  • размер фрагмента равен 25
Обычно из темы Kafka считывается 25 элементов для 1 чанка.
Теперь 1 элемент Kafka содержит 1...n дочерних элементов. Размер этого дочернего элемента не фиксирован, он различен для каждого прочитанного элемента Kafka.
Каждый элемент Kafka сглаживается в моем процессоре, так что процессор возвращает список дочерних элементов.
Затем писатель получает список дочерних элементов полного фрагмента.
Пока все хорошо.
Это означает, что каждый раз, когда мой писатель выполняет запись в базу данных, количество элементов то, что на самом деле написано, может быть разным. Один раз он может записать 150 элементов, в следующий фрагмент — только 50 элементов и так далее.
Есть ли способ создать модуль записи, который записывает в базу данных только при достижении определенного порога дочерних элементов?
Например, я хочу, чтобы модуль записи записывал дочерние элементы, если достигнуто минимальное количество элементов в 1000. Таким образом, я хочу повысить производительность записи при записи в мою базу данных Postgres.
По сути, я хочу агрегировать операцию записи для нескольких фрагментов, сохраняя при этом поведение фиксации Spring Batch.
У меня возникла идея написать собственный модуль записи, который использует некоторый внутренний буфер. Но я не могу разобраться в поведении фиксации/транзакции Spring Batch. Как мне сообщить Spring Batch, что он фиксирует записанные элементы только тогда, когда писатель действительно записывает данные после достижения порога? Возможно, это просто невозможно.

Подробнее здесь: https://stackoverflow.com/questions/797 ... s-after-re
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»