[Bearbeiten: Diese Antwort ist jetzt veraltet, es wurde eine row_number
Funktion zur Abfragesprache hinzugefügt. Diese Antwort wurde aus historischen Gründen hinterlassen, wenn jemand auf seltsame Abfragen stößt, die wie diese Antwort aussehen]
Nicht leicht.
Wenn Sie den ODATA-Abfragepfad von/events anstelle des Abfragepfads/verwenden können, wird Paging unterstützt. aber nicht wirklich benutzerdefinierte Abfragen wie Sie haben.
so etwas wie ein Funkruf zu erhalten, müssen Sie eine komplizierte Abfrage zu machen, und verwenden summarize
und makeList
und ein rowNum
Feld in Ihrer Abfrage erfinden, dann mvexpand
verwenden, um die Listen neu zu erweitern und dann durch die rowNum
zu filtern. es ist ziemlich kompliziert und wenig intuitiv, so etwas wie:
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
Ich glaube, es ist schon eine Anfrage auf der appinsights Uservoice Paging-Betreiber in der Abfragesprache zu unterstützen. Die andere Annahme hier ist, dass Daten in der zugrundeliegenden Tabelle nicht ändern, während Sie arbeiten. wenn neue Daten zwischen Anrufen erscheint, wie
- gib mir Reihen 0-99
- 50 neue Zeilen erscheinen
- gib mir Reihen 100-199
dann Schritt 3 eigentlich gibt Ihnen 50 doppelte Zeilen, die Sie gerade in Schritt 1 erhalten haben.