У меня есть большой XML-файл (100 ГБ или более), который содержит неупорядоченные записи, что-то вроде этого:
<page id = "1">content 1</page>
<page id = "2">...</page>
<page id = "2">...</page>
... many other pages ...
<page id = "1">content 2</page>
... many other pages ...
Я должен получить доступ к данным в режиме только для чтения, но сгруппировать их по странице:
<page id = "1">
content1
content2
...
</page>
<page id = "2">
...
...
</page>
...other pages...
Страницы не должны быть упорядочены по идентификатору.
Мое решение сейчас требует предварительной обработки xml и для каждой страницы:
- открыть файл с уникальным соглашением об именах (например, «1.data» для страницы 1, «2.data», ...)
- добавить содержимое текущей страницы
- закрыть файл
Проблема для меня заключается в том, что обработка большого количества страниц требует создания миллионов файлов, что, конечно, не очень хорошо.
У меня вопрос, если можно использовать какой-нибудь архивный файл (например, tar или zip) для сериализации всех моих данных . Преимущество заключается в наличии только одного большого файла, содержащего все мои данные, который можно читать последовательно, сжатие не обязательно требуется.
Я предпочитаю избегать использования базы данных, потому что мое программное обеспечение должно быть автономным, и я бы предпочел использовать python.
Спасибо
Риккардо