我正在使用 Exchange 2010 数据。我有 MessageID、Sender、Recipients 和 _time。根据事件类型,可以拆分收件人(即,给定消息的所有收件人不包括在事件中,而是拆分为多个事件)。以下是数据示例:
_time MessageID Sender Recipients
4:25 <12345> Sender1 Recipient1
4:50 <12345> Sender1 Recipient2
我使用此查询通过 MessageID 和 Sender 将多个 Recipients 值组合成一个事件:
index=ExchangeIndex sourcetype=MSExchange:2010:Message tracking
| stats values(Recipients) as recip by MessageID, Sender
| table _time, MessageID, Sender, recip
这导致:
_time MessageID Sender recip
<12345> Sender1 Recipient1; Recipient2
_time 未填充,因为values
如果 _time 包含在by
语句中,则不会工作,因为特定 MessageID 的每个事件都发生在不同的时间。因此,我需要以某种方式dedup
同时获取 MessageID(以获取最新的 _time)并填充 Recipients 值。
我试过这个:
| stats max(_time) as datetime by MessageID, Sender
| stats values(Recipients) as recip by datetime, MessageID, Sender
| table datetime, MessageID, Sender, recip
但这也不起作用,它会导致 recip 没有被填充:
_time MessageID Sender recip
4:50 <12345> Sender1
我想要的输出如下所示:
_time MessageID Sender recip
4:50 <12345> Sender1 Recipient1; Recipient2
我应该如何做到这一点?