[编辑:此答案现在已过时,已添加到查询语言row_number
功能。这个答案留给历史的目的,如果有人遇到奇怪的查询,看起来像这个答案]
不是很容易。
如果您可以使用/ events ODATA查询路径而不是/查询路径,它支持分页。但不是像你一样的自定义查询。
要得到的东西像寻呼机一样,你需要做一个复杂的查询,并使用summarize
和makeList
和您的查询创造一个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 UserVoice的请求,以支持分页运营商在查询语言。
这里的另一个假设是数据不会在您工作时在底层表中更改。如果新的数据将显示您的通话之间,像
- 给我行0-99
- 50个新行出现
- 给我行100-199
,则步骤3是实际上让你回来,你刚在步骤50个中重复的行1