java — перезапустите SAX-парсер с середины документа

Я работаю над проектом, который должен анализировать очень большой файл XML (около 10 ГБ). Поскольку время процесса действительно велико (около суток), возможно, мой код завершится в середине процесса; поэтому я хочу сохранить статус своего кода время от времени, а затем иметь возможность перезапустить его с последней точки сохранения.

Есть ли способ запустить (перезапустить) SAX-парсер не с начала XML-файла?

П.С .: Я программирую на Python, но решения для Java и C ++ также приемлемы.

0

Решение

Не совсем уверен, ответит ли это на ваш вопрос, но я бы выбрал другой подход. 10 ГБ — это НЕ ТОЛЬКО много данных, поэтому вы можете реализовать двухфазный анализ.

Фаза 1 состояла в том, чтобы разбить файл на более мелкие куски на основе некоторого тега, чтобы в итоге вы получили более мелкие файлы. Например, если ваш первый файл A.xmlВы разделили это A_0.xml, A_1.xml и т.п.

Фаза 2 будет действительно тяжело поднимать каждый патрон, так что вы вызываете его на A_0.xmlзатем после этого A_1.xml и т. д. Затем вы можете перезапустить чанк после выхода вашего кода.

1

Другие решения


По вопросам рекламы [email protected]