Разделение на части XML и загрузка его в реляционные таблицы

Я работаю на кредитный союз (примерно 60 тыс. Счетов). Процесс утверждения с 70-х годов, и он тесно связал данные с макетом. Короче говоря, вы запускаете задание, и оно создает текстовый файл, содержащий выписку для каждой учетной записи. Я изменил конфигурацию мэйнфрейма и теперь вместо вывода текста получаю XML примерно так:

<statements>
    <statement account='1'>
       ...statement info like checking/savings/certificate/visa/loan/heloc shares
    </statement>
    <statement account='N'>
       ...statement info like checking/savings/certificate/visa/loan/heloc shares
    </statement>
</statements>

Я написал код Java для извлечения данных из реляционных таблиц и создания файлов PDF на лету с помощью iText. Некоторые данные, отображаемые в выражении, рассчитываются на основе данных в XML. Например, XML содержит все транзакции на общем ресурсе. В заявлении мы хотим показать количество кредитов и количество дебетов. После загрузки в БД я могу использовать представление для вычисления этих значений на лету и предоставления данных для моего Java-приложения.

Этот XML-файл занимает ~900 МБ и будет только расти по мере добавления новых членов.

Я хочу обрабатывать xml по одному "заявлению" за раз. http://mrico.eu/entry/parsing_chunks_of_xml_documents

Может ли JAXB анализировать большие XML-файлы по частям)

Получив отдельное заявление, я хочу загрузить его доли (чеки, сбережения, визы и т. Д.) В соответствующие таблицы БД.

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

Какую комбинацию инструментов парсер / связыватель / персистентность вы бы порекомендовали?

лично я предпочел бы необработанные вставки JDBC, поэтому вопрос парсера и связующего является более важным.

Примечание. Возможно, я мог бы создать схему для XML, но она может быть хрупкой из-за того, как мэйнфрейм создает файл XML. Любой, кто использует программное обеспечение Fiserv Spectrum, чувствует мою боль.

1 ответ

Взгляните на StAX, который является потоковым API для XML.

Другие вопросы по тегам