Применение правил слюни с использованием весенней партии - PullRequest
0 голосов
/ 13 мая 2019

У нас есть сценарий, в котором я должен получать данные из одной базы данных и обновлять данные в другой базе данных после применения бизнес-правил.

Я хочу использовать пружину партия + слюни + спящий режим .

Можем ли мы применять правила в пакетном режиме, поскольку у нас одновременно есть миллион записей?

1 Ответ

0 голосов
/ 13 мая 2019

Я не специалист по слюнам и просто пытаюсь рассказать о Spring Batch.

Spring Batch - это Read -> Process -> Write framework, и то, что мы делаем с drools, аналогично тому, что мы делаем на Process шаге Spring Batch, т.е. мы преобразуем чтение элемент в ItemProcessor.

Как Spring Batch помогает обрабатывать большое количество элементов, реализуя Chunk Oriented обработка, т.е. мы читаем N-количество элементов за один раз, преобразуем эти элементы один за другим в Processor и затем записываем основная масса элементов в модуле записи - таким образом мы в основном сокращаем количество вызовов БД.

Существуют дополнительные возможности повышения производительности за счет реализации параллелизма с помощью секционирования и т. Д., Если ваши данные могут быть разбиты по некоторым критериям.

Таким образом, мы читаем элементы массово, преобразуем один за другим, а затем записываем массово в целевую базу данных, и я не думаю, что hibernate является хорошим инструментом для массового обновления / вставки на этапе записи - я бы выбрал простой JDBC.

Ваши слюни появляются на этапе преобразования, и это будет ваш пользовательский код, и его производительность не будет иметь ничего общего с Spring Batch, то есть с тем, как вы инициализируете сеансы, правила предварительной компиляции и т. Д. Вам нужно будет подключить этот код таким образом, чтобы вы не инициализировали сеанс drools и т. Д. Каждый раз, но это должно быть одноразовым действием.

...