Consigli per il linguaggio di query di Log Analytics per gli operatori Summarize e Join
Data di pubblicazione: 29 maggio, 2018
Questo aggiornamento illustra i consigli relativi alla sintassi del linguaggio di query di Azure Log Analytics e Application Insights per gli operatori Summarize e Join. La sintassi esistente è ancora supportata, ma ti consigliamo di modificare la sintassi della query dove applicabile nelle ricerche salvate e negli avvisi per evitare l'ambiguità dei risultati.
Se hai domande su questi consigli, contattaci.
Binning automatico su base oraria nell'operatore Summarize
I dati attualmente aggregati in base a chiave datetime vengono attualmente raggruppati in bin orari. In questo esempio la colonna TimeGenerated usata nell'operatore Summarize è stata arrotondata automaticamente ai bin orari:
SecurityEvent
| where TimeGenerated > ago(1d)
| where EventID == 4625
| summarize count() by TimeGenerated
Ecco i risultati della query:
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 |
1.205 1.268 1.234 1.173 1.007 1.042 1.041 1.049 1.090 1.113 |
Azioni consigliate:
- Se non ti affidi alla funzionalità di binning automatico nelle ricerche salvate o negli avvisi, ad esempio per il riepilogo in base a TimeGenerated:
- Non è necessaria alcuna azione.
- Se non conosci la funzionalità di binning automatico, è possibile che le tue query restituiscano risultati con un'aggregazione oraria non prevista:
- Verifica se stai usando i dati di aggregazione in base a chiave datetime, ad esempio per il riepilogo in base a TimeGenerated. In tale caso, correggi le query in modo da usare il binning esplicito, ad esempio per il riepilogo in base a bin(TimeGenerated, 1h).
- Se conosci la funzionalità di binning automatico e la usi:
- Correggi le query in modo da usare il binning esplicito, ad esempio per il riepilogo in base a bin(TimeGenerated, 1h).
Espressioni di uguaglianza nell'operatore Join
La sintassi del linguaggio permette attualmente l'uso di espressioni di uguaglianza ambigue come attributi Join (ad esempio, key1 == key2) che restituiscono risultati indesiderati. Ti consigliamo di modificare le espressioni di uguaglianza ambigue in modo da evitare questo comportamento.
Ecco un esempio di un'espressione Join ambigua, che riepiloga la durata della sessione giornaliera per ogni 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
Azioni consigliate:
- Se non usi le espressioni di uguaglianza negli operatori Join nelle ricerche salvate o negli avvisi:
- Non è necessaria alcuna azione.
- Se usi le espressioni di uguaglianza negli operatori Join:
- Correggi la sintassi dell'operatore Join.
- Correggi le tue query. I nomi delle colonne devono essere qualificati con la tabella proprietaria applicabile in base alle notazioni
$left
e$right
. Esempi:
| join … on $left.Col1 == $right.Col2
| join … on X (equivalent to: | join … on $left.X == $right.X)