Log Analytics-spørrespråkanbefalinger for Summarize og Join-operatører
Publiseringsdato: 29 mai, 2018
Denne oppdateringen beskriver Azure Log Analytics og Application Innsights-spørringsspråkets syntaksanbefalinger for Summarize og Join-operatørene. Eksisterende syntaks støttes fortsatt, men vi anbefaler på det sterkeste at du endrer spørringssyntaksen din der det er aktuelt i lagrede søk og varsler, for å unngå tvetydig resultat.
For spørsmål om disse anbefalingene, kontakt oss.
Timesvis automatisk binning i Summarize-operatøren
For tiden grupperes data etter datetime-nøkkelen automatisk i timebokser. I dette eksemplet brukes kolonnen TimeGenerated i operatøren Summarize, avrundet automatisk til timebokser:
SecurityEvent
| where TimeGenerated > ago(1d)
| where EventID == 4625
| summarize count() by TimeGenerated
Her er søkeresultatene:
TimeGenerated [UTC] |
count_ |
2018-02-04T09:00:00.000 2018-02-04T10:00:00.000 2018-02-04T11:00:00.000 2018-02-04T12:00:00.000 2018-02-04T13:00:00.000 2018-02-04T14:00:00.000 2018-02-04T15:00:00.000 2018-02-04T16:00:00.000 2018-02-04T17:00:00.000 2018-02-04T18:00:00.000 |
1205 1268 1234 1173 1007 1042 1041 1049 1090 1113 |
Anbefalte handlinger:
- Hvis du ikke stoler på auto-binning-funksjonen, enten i lagrede søk eller i varsler (for eksempel, oppsummer etter TimeGenerated):
- Du trenger ikke gjøre noe.
- Hvis du ikke er klar over auto-binning-funksjonen, kan spørringene dine returnere resultater med utilsiktet timeaggregasjon:
- Bekreft om du bruker aggregerende data etter datetime-nøkkelen (for eksempel oppsummer av TimeGenerated). Hvis ja, korriger spørsmålene for å bruke eksplisitt binning, for eksempel oppsummer etter bin(TimeGenerated, 1h).
- Hvis du er klar over auto-binning-funksjonen og stoler på den:
- Korriger spørringene for å bruke eksplisitt binning, for eksempel, oppsummer etter bin(TimeGenerated, 1h).
Likestillingsuttrykk i Join-operatøren
For øyeblikket tillater språksyntaksen bruk av tvetydige likestillingsuttrykk som Join-attributter (for eksempel key1 == key2) som gir uønskede resultater. Vi anbefaler at du endrer tvetydige likestillingsuttrykk for å unngå denne atferden.
Her er et eksempel på et tvetydig uttrykk for Join (summerer den daglige øktvarigheten per datamaskin):
SecurityEvent
| where EventID == 4624
| join kind= inner (
SecurityEvent
| where EventID == 4634
) on TargetLogonId == TargetLogonId
| extend Duration = LogoffTime - LogonTime
| summarize sum(Duration) by bin(LogonTime, 1d), Computer
Anbefalte handlinger:
- Hvis du ikke bruker likhetsuttrykk i Join-operatorer, enten i lagrede søk eller i varsler:
- Du trenger ikke gjøre noe.
- Hvis du bruker likhetsuttrykk i Join-operatører:
- Korriger Join-operatørens syntaks.
- Rett opp spørringene. Kolonnenavnene bør kvalifiseres med gjeldende eiertabell merket med
$left
og$right
notasjoner. Eksempler:
| join … on $left.Col1 == $right.Col2
| join … on X (equivalent to: | join … on $left.X == $right.X)