我有一个可以启动或停止的服务。每个操作生成一个带有时间戳和操作类型的记录。最终,我得到了一系列带时间戳的操作记录。现在我要计算一天中服务的运行时间。想法很简单。对于每对开始/停止记录,计算时间跨度并求和。但我不知道如何实现它与Hive,如果可能的话。我可以创建表来存储中间结果。这是主要的阻塞问题,还有一些其他的小问题。例如,一些开始/停止对可能跨越一天。任何关于如何处理这个小问题的想法都将不胜感激。
样本数据:
Timestamp Operation
... ...
2017-09-03 23:59:00 Start
2017-09-04 00:01:00 Stop
2017-09-04 06:50:00 Start
2017-09-04 07:00:00 Stop
2017-09-05 08:00:00 Start
... ...
服务结束时间 2017-09-04
那么应该是 1 + 10 = 11
分钟。请注意,第一个时间间隔跨越 09-03
以及 09-04
,只有属于 09-04
被计算在内。
1条答案
按热度按时间dxpyg8gm1#