'Anbefalinger for operatorerne Summarize og Join i Log Analytics-forespørgselssproget
Dato for publicering: 29 maj, 2018
I denne opdatering beskrives anbefalinger for syntaks i forespørgselssproget i Azure Log Analytics og Application Insights for operatorerne Summarize og Join. Den eksisterende syntaks understøttes stadig, men vi anbefaler på det kraftigste, at du ændrer din forespørgselssyntaks efter behov i gemte søgninger og advarsler for at undgå tvetydige resultater.
Hvis du har spørgsmål til disse anbefalinger, skal du kontakte os.
Automatisk gruppering i operatoren Summarize hver time
I øjeblikket grupperes data, der er samlet af nøglen Datetime, automatisk hver time. I dette eksempel afsluttes kolonnen TimeGenerated, der er brugt i operatoren Summarize, automatisk til grupperinger hver time:
SecurityEvent
| where TimeGenerated > ago(1d)
| where EventID == 4625
| summarize count() by TimeGenerated
Her er forespørgselsresultaterne:
Oprettelsestidspunkt [UTC] |
antal_ |
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 |
1.205 1.268 1.234 1.173 1.007 1.042 1.041 1.049 1.090 1.113 |
Anbefalede handlinger:
- Hvis du ikke er afhængig af funktionen til automatisk gruppering i enten gemte søgninger eller advarsler (f.eks. opsummer efter TimeGenerated):
- Der kræves ingen handling.
- Hvis du ikke er opmærksom på funktionen til automatisk gruppering, kan dine forespørgsler muligvis returnere resultater med utilsigtet sammenlægning hver time:
- Bekræft, om du bruger sammenlægning af data efter nøglen Datetime (f.eks. opsummer efter TimeGenerated). Hvis det er tilfældet, skal du rette forespørgslerne, så de anvender eksplicit gruppering – f.eks. opsummer efter bin(TimeGenerated, 1h).
- Hvis du ikke er opmærksom på funktionen til automatisk gruppering og er afhængig af den:
- Ret forespørgslerne, så de anvender eksplicit gruppering – f.eks. opsummer efter bin(TimeGenerated, 1h).
Lighedsudtryk i operatoren Join
I øjeblikket tillader den sproglige syntaks anvendelsen af tvetydige lighedsudtryk som Join-attributter (f.eks. key1 == key2), der giver uønskede resultater. Vi anbefaler, at du ændrer tvetydige lighedsudtryk for at undgå denne funktionsmåde.
Her er et eksempel på et tvetydigt Join-udtryk (opsummering af varigheden af den daglige session pr. computer):
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
Anbefalede handlinger:
- Hvis du ikke bruger lighedsudtryk i Join-operatorerne i enten gemte søgninger eller advarsler:
- Der kræves ingen handling.
- Hvis du bruger lighedsudtryk i Join-operatorer:
- Ret syntaksen for Join-operatoren.
- Ret dine forespørgsler. Kolonnenavnene skal være kvalificeret vha. den gældende ejertabel, der er angivet af notationerne
$left
og$right
. Eksempler:
| join … on $left.Col1 == $right.Col2
| join … on X (equivalent to: | join … on $left.X == $right.X)