【问题标题】:KQL: aggregate row by time shift and get value of the more recent rowKQL:按时移聚合行并获取最近行的值
【发布时间】:2021-11-05 10:11:03
【问题描述】:

我认为查看数据更容易。 我们有一个应用程序可以跟踪 Intranet 内的所有用户交互。

eventType pageUrl timestamp timeOnPageMs
pageEvent https://url1.com/ 2021-11-05T06:10:11.591Z 0
pageEvent https://url1.com/ 2021-11-05T06:20:11.591Z 23123
pageEvent https://url2.com/ 2021-11-05T06:11:11.591Z 0
pageEvent https://url2.com/ 2021-11-05T06:30:11.591Z 23123

打开页面事件标识为timeOnPageMs=0,否则为关闭页面事件。

我想定义一个提取所有页面打开事件的查询,但带有页面关闭事件的 timeOnPageMs。

eventType pageUrl timestamp timeOnPageMs
pageEvent https://url1.com/ 2021-11-05T06:10:11.591Z 23123
pageEvent https://url2.com/ 2021-11-05T06:11:11.591Z 33123

我尝试使用查找所需值的 UDF,但似乎不可能,如上次回复 here 中所述。

提前感谢任何愿意提供帮助的人!

贾科莫 S.S.

【问题讨论】:

  • 如果同一个 URL 有多个 Open 事件,然后是同一个 URL 的多个 Close 事件,你想如何关联事件?你有 SessionID 之类的吗?
  • @SlavikN,非常感谢您编辑问题!是的,实际上我们同时拥有用户的 AAD 标识符和会话 ID。在这个 frame 内,我想将 URL 的给定 open 事件 与第一个相同 URL close 事件 的 close 事件关联起来更大的时间戳。目前我解决了在 PowerBI 中引入一个新的 dataset
  • 太棒了。由于您有一个 sessionId,因此解决方案非常简单。请看下文。

标签: azure-data-explorer kql


【解决方案1】:

您需要一个 SessionId 来关联事件(以便能够处理同一 URL 的多个 Open 事件,然后是同一 URL 的多个 Close 事件的情况)。

然后你就是这样解决它的:

datatable(eventType:string, pageUrl:string, timestamp:datetime, timeOnPageMs:long, sessionId:string)
[
    "pageEvent","https://url1.com/",datetime(2021-11-05T06:10:11.591Z),0,"id1",
    "pageEvent","https://url1.com/",datetime(2021-11-05T06:10:15.591Z),0,"id2",
    "pageEvent","https://url1.com/",datetime(2021-11-05T06:11:12.591Z),1500,"id2",
    "pageEvent","https://url1.com/",datetime(2021-11-05T06:20:11.591Z),23123,"id1",
    "pageEvent","https://url2.com/",datetime(2021-11-05T06:11:11.591Z),0,"id3",
    "pageEvent","https://url2.com/",datetime(2021-11-05T06:30:11.591Z),23123,"id3"
]
| summarize take_any(eventType, pageUrl), min(timestamp), max(timeOnPageMs) by sessionId

结果:

sessionId eventType pageUrl min_timestamp max_timeOnPageMs
id1 pageEvent https://url1.com/ 2021-11-05 06:10:11.5910000 23123
id2 pageEvent https://url1.com/ 2021-11-05 06:10:15.5910000 1500
id3 pageEvent https://url2.com/ 2021-11-05 06:11:11.5910000 23123

【讨论】:

  • 太棒了!谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
相关资源
最近更新 更多