Большой файл для чтения кусками - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно обработать большой файл и вставить его в БД, и я не хочу тратить много памяти на то же самое.Я знаю, что мы можем читать строки в потоковом режиме, используя API Apache Commons или буферизированный читатель .... bt Я хочу вставить в БД в пакетном режиме, например, 1000 вставок за 1 раз, а не 1 на 1. .... читаетфайл строка за строкой, добавление в список, подсчет размера, вставка и обновление списка строк - единственный способ добиться этого?

1 Ответ

1 голос
/ 27 мая 2019

Согласно вашему описанию, Spring-Batch очень хорошо подходит.

По сути, он использует концепцию chunk для чтения / обработки / записи содержимого. Кстати, это может быть одновременно для производительности.

    @Bean
    protected Step loadFeedDataToDbStep() {
        return stepBuilder.get("load new fincon feed").<com.xxx.Group, FinconFeed>chunk(250)
                .reader(itemReader(OVERRIDDEN_BY_EXPRESSION))
                .processor(itemProcessor(OVERRIDDEN_BY_EXPRESSION, OVERRIDDEN_BY_EXPRESSION_DATE, OVERRIDDEN_BY_EXPRESSION))
                .writer(itemWriter())
                .listener(archiveListener())
                .build();
    }

Вы можете обратиться к здесь для получения дополнительной информации

...