OverflowOverflows

Un overflow si verifica quando il risultato di un calcolo è troppo grande per il tipo di destinazione.An overflow occurs when the result of a computation is too large for the destination type. L'overflow causa in genere un errore di query parziale.The overflow usually leads to a partial query failure.

Ad esempio, la query seguente provocherà un overflow.For example, the following query will result in an overflow.

let Weight = 92233720368547758;
range x from 1 to 3 step 1
| summarize percentilesw(x, Weight * 100, 50)

percentilesw()L'implementazione di Kusto accumula l' Weight espressione per i valori che sono "abbastanza vicini".Kusto's percentilesw() implementation accumulates the Weight expression for values that are "close enough". In questo caso, l'accumulo attiva un overflow perché non rientra in un intero con segno a 64 bit.In this case, the accumulation triggers an overflow because it doesn't fit into a signed 64-bit integer.

In genere, gli overflow sono il risultato di un "bug" nella query, perché kusto usa i tipi a 64 bit per i calcoli aritmetici.Usually, overflows are a result of a "bug" in the query, since Kusto uses 64-bit types for arithmetic computations. Il modo migliore consiste nell'esaminare il messaggio di errore e identificare la funzione o l'aggregazione che ha attivato l'overflow.The best course of action is to look at the error message, and identify the function or aggregation that triggered the overflow. Verificare che gli argomenti di input restituiscono valori che hanno senso.Make sure the input arguments evaluate to values that make sense.