我有几个事件日志文件(每行一个事件)。这些日志可能会重叠。这些日志是在不同的客户端机器上生成的,可能来自多个时区(但我假设我知道时区)。每个事件都有一个时间戳,通过使用与日志文件相应的时区实例化每个日志解析器的日历实例,并使用getTimeInMillis获取UTC时间来将其标准化到公共时间。日志已按时间戳排序。多个事件可以同时发生,但它们绝对不是相等的事件。
这些文件可能相对较大,例如单个日志中有500,000个或更多事件,因此将日志的整个内容读入简单的Event[]中是不可行的。
我试图做的是将每个日志的事件合并到一个日志中。这有点像归并排序任务,但每个日志已经排好序,我只需要将它们组合起来。第二个组成部分是同一事件可能在每个单独的日志文件中出现,我希望在文件输出日志中“删除重复事件”。
这是否可以“原地”完成,即顺序地处理每个日志文件的一些小缓冲区?我不能简单地将所有文件读入Event[],对列表进行排序,然后删除重复项,但迄今为止,我的有限编程能力只使我看到这个作为解决方案。在同时从每个日志中读取事件时,我是否可以使用更复杂的方法来完成此操作?
这些文件可能相对较大,例如单个日志中有500,000个或更多事件,因此将日志的整个内容读入简单的Event[]中是不可行的。
我试图做的是将每个日志的事件合并到一个日志中。这有点像归并排序任务,但每个日志已经排好序,我只需要将它们组合起来。第二个组成部分是同一事件可能在每个单独的日志文件中出现,我希望在文件输出日志中“删除重复事件”。
这是否可以“原地”完成,即顺序地处理每个日志文件的一些小缓冲区?我不能简单地将所有文件读入Event[],对列表进行排序,然后删除重复项,但迄今为止,我的有限编程能力只使我看到这个作为解决方案。在同时从每个日志中读取事件时,我是否可以使用更复杂的方法来完成此操作?