У меня есть несколько файлов журнала событий (одно событие в строке). Журналы могут перекрываться. Журналы создаются на отдельных клиентских компьютерах, возможно, из нескольких часовых поясов (но я предполагаю, что знаю часовой пояс). Каждое событие имеет временную метку, которая была нормализована в общее время (путем создания экземпляра календаря каждого синтаксического анализатора журнала с часовым поясом, соответствующим файлу журнала, а затем с помощью getTimeInMillis для получения времени UTC). Журналы уже отсортированы по отметке времени. В одно и то же время могут происходить несколько событий, но они ни в коем случае не равны.
Эти файлы могут быть относительно большими, например, 500000 событий или более в одном журнале, поэтому чтение всего содержимого журналов в простое событие [] невозможно.
Я пытаюсь объединить события из каждого из журналов в один журнал. Это похоже на задачу слияния, но каждый журнал уже отсортирован, мне просто нужно собрать их вместе. Второй компонент заключается в том, что одно и то же событие может быть засвидетельствовано в каждом из отдельных файлов журнала, и я хочу «удалить повторяющиеся события» в файле вывода файла.
Можно ли это сделать "на месте", например, последовательно работая над некоторыми небольшими буферами каждого файла журнала? Я не могу просто прочитать все файлы в Event [], отсортировать список, а затем удалить дубликаты, но пока мои ограниченные возможности программирования позволяют мне видеть это как решение. Есть ли какой-нибудь более изощренный подход, который я могу использовать для этого, когда я читаю события из каждого из журналов одновременно?