azure-data-explorer - KQL:按时移聚合行并获取最近行的值
问题描述
我认为看数据更容易。我们有一个应用程序可以跟踪 Intranet 中的所有用户交互。
事件类型 | 页面网址 | 时间戳 | timeOnPageMs |
---|---|---|---|
页面事件 | https://url1.com/ | 2021-11-05T06:10:11.591Z | 0 |
页面事件 | https://url1.com/ | 2021-11-05T06:20:11.591Z | 23123 |
页面事件 | https://url2.com/ | 2021-11-05T06:11:11.591Z | 0 |
页面事件 | https://url2.com/ | 2021-11-05T06:30:11.591Z | 23123 |
打开页面事件标识有timeOnPageMs=0
,否则为关闭页面事件。
我想定义一个提取所有页面打开事件的查询,但使用页面关闭事件的 timeOnPageMs。
事件类型 | 页面网址 | 时间戳 | timeOnPageMs |
---|---|---|---|
页面事件 | https://url1.com/ | 2021-11-05T06:10:11.591Z | 23123 |
页面事件 | https://url2.com/ | 2021-11-05T06:11:11.591Z | 33123 |
我尝试使用查找所需值的 UDF,但它似乎不可能,如上次回复中所述。
提前感谢任何会提供帮助的人!
贾科莫 SS
解决方案
您需要一个 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
结果:
会话 ID | 事件类型 | 页面网址 | min_timestamp | max_timeOnPageMs |
---|---|---|---|---|
id1 | 页面事件 | https://url1.com/ | 2021-11-05 06:10:11.5910000 | 23123 |
id2 | 页面事件 | https://url1.com/ | 2021-11-05 06:10:15.5910000 | 1500 |
id3 | 页面事件 | https://url2.com/ | 2021-11-05 06:11:11.5910000 | 23123 |
推荐阅读
- mysql - 如何在内部使用 MySQL 数据标签?
- c# - 通过DataSource为DatagridView绑定数据时为DataGridViewRow.Tag设置值
- windows - 如何检测 Windows 机器上是否安装了 MSVC 2015 可再发行组件?
- python - 何时知道使用哪个轴来查找 kNN 算法的距离?
- amazon-web-services - 如果我运行 Cloudwatch,是否需要将原始应用程序日志文件发送到 S3?
- amazon-web-services - AWS 全栈反应应用程序。构建未能成功完成
- javascript - Chrome 无法获取 localStorage
- c# - Unity - 随机空引用问题
- cassandra - 分组依据的 Cassandra 数据建模
- r - 屏幕阅读器无法访问闪亮的应用断开消息