Как разделить XML-файл в SpringBatch с помощью CustomMultiResourcePartitioner? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь настроить синтаксический анализатор для большого XML-файла, поэтому я хотел бы использовать преимущества инфраструктуры SpringBatch для его разбиения.

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

Есть ли возможность разбить этот файл по прямым потомкам XML?Например:

sample.xml (1 ГБ)

<students>
    <student>
        <name>Sirius Black</name>
        <phone>123</phone>
    </student>
    <student>
        <name>Tom Riddle</name>
        <phone>349</phone>
    </student>
    <student>
        <name>Severus Snape</name>
        <phone>934</phone>
    </student>
</students>

Я изучил примеры попыток разбиения плоских файлов, но как я могу это сделать с файлами XML?

PD: прямым потомком этого XML-файла будет «студент»

1 Ответ

0 голосов
/ 05 февраля 2019

Чтобы использовать MultiResourcePartitioner, вам нужно иметь несколько входных файлов.

Я хотел бы воспользоваться характеристиками среды SpringBatch для ее разбиения.

Обратите внимание, что Spring Batch не заботится о разбиении файла.Вы должны выполнить эту работу заранее (например, используя SystemCommandTasklet).Однако разбить огромный XML-файл на несколько файлов не так просто, как сделать это для простого файла (например, с помощью команды split ).Поэтому использование метода разбиения в Spring Batch возможно только в том случае, если вам удастся разбить файл XML.

Я рекомендую начать с Многопоточного шага и посмотреть, получите ли вы результат /ожидаемая производительность.

Подобный вопрос можно найти здесь: Разбор огромного XML с использованием Spring Batch framework

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