фрагментирование 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. Любой, кто пользуется программой Spectrum от Fiserv, чувствует мою боль.


person Jason    schedule 01.12.2010    source источник


Ответы (1)


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

person peter.murray.rust    schedule 01.12.2010