Я работаю с данными Exchange 2010. У меня есть MessageID, Sender, Recipients и _time. В зависимости от типа события получатели могут быть разделены (т. Е. Все получатели данного сообщения не включаются в событие, а делятся на несколько событий). Вот пример данных:
_time MessageID Sender Recipients
4:25 <12345> Sender1 Recipient1
4:50 <12345> Sender1 Recipient2
Я использую этот запрос для объединения нескольких значений Recipients в одно событие по MessageID и Sender:
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
Но это тоже не работает, и в результате получатель не заполняется:
_time MessageID Sender recip
4:50 <12345> Sender1
Мой желаемый результат выглядит так:
_time MessageID Sender recip
4:50 <12345> Sender1 Recipient1; Recipient2
Как мне этого добиться?