[编辑:这个答案现在已经过时了,row_number
查询语言中添加了一个功能。如果有人遇到类似于此答案的奇怪查询,则此答案留作历史用途]
不容易。
如果您可以使用 /events ODATA 查询路径而不是 /query 路径,则支持分页。但不是像您那样真正的自定义查询。
要获得类似分页的东西,您需要进行复杂的查询,并在查询中使用summarize
andmakeList
和 invent 一个rowNum
字段,然后使用mvexpand
重新展开列表,然后按rowNum
. 它非常复杂且不直观,例如:
customEvents
| project customDimensions.FilePath, timestamp
| where timestamp > now(-100d)
| order by timestamp desc
// squishes things down to 1 row where each column is huge list of values
| summarize filePath=makelist(customDimensions.FilePath, 1000000)
, timestamp=makelist(timestamp, 1000000)
// make up a row number, not sure this part is correct
, rowNum = range(1,count(strcat(filePath,timestamp)),1)
// expands the single rows into real rows
| mvexpand filePath,timestamp,rowNum limit 1000000
| where rowNum > 0 and rowNum <= 100 // you'd change these values to page
我相信 appinsights 用户语音上已经有一个请求,以支持查询语言中的寻呼运算符。
这里的另一个假设是,在您工作时,基础表中的数据不会发生变化。如果您的通话之间出现新数据,例如
- 给我行 0-99
- 出现 50 个新行
- 给我第 100-199 行
那么第 3 步实际上是给您返回 50 个您在第 1 步中获得的重复行。