在Azure数据资源管理器中有两个数据表:
1.事件列表-->在特定时间发生的单个事件
1.日期范围列表-->机器处于活动状态的时间范围列表
我的目标是从表1中找到所有事件,这些事件发生在机器处于活动状态的时隙内。
这就是我如何设置两个数据表的查询:
let events = NOTIFICATIONTABLE
| where TimeStamp > ago(365d)
| GUID == 'eventNotification'
| project TimeStamp, Notification;
let timeslots = ACTIVITYTABLE
| where StartTime> ago(365d)
| where GUID == "machineActive"
| project StarTime, EndTime
将这些合并组合到查询的最佳方法是什么?结果应如下:给予来自表事件的所有通知,其中TimeStamp在表时隙中的一个日期范围(StartTime到EndTime)内。
1条答案
按热度按时间vuktfyat1#
这是一个很好的问题,看起来你的逻辑到目前为止还不错。我的方法是使用Join,特别是交叉连接。
这应该会给你给予如下的输出。
| 时间戳|通知|startTime| EndTime| ComputerName|
| --|--|--|--|--|
| 2023-09-01T10:30:00.000000Z|检测到不良网络流量|2023-09-01T08:30:00.000000Z| 2023-09-01T17:30:00.000000Z| WS04|
| 2023-09-01T10:30:00.000000Z|检测到不良网络流量|2023-09-01T08:30:00.000000Z| 2023-09-01T17:30:00.000000Z| WS03|
| 2023-10-01T17:30:00.000000Z|检测到不良网络流量|2023-10-01T08:30:00.000000Z| 2023-10-01T17:30:00.000000Z| WS-05|