hash()

Restituisce un valore hash per il valore di input.

Nota

  • La funzione calcola gli hash usando l'algoritmo xxhash64, ma può cambiare. È consigliabile usare questa funzione solo all'interno di una singola query.
  • Se è necessario mantenere un hash combinato, è consigliabile usare hash_sha256(), hash_sha1()o hash_md5() e combinare gli hash con un operatore bit per bit. Queste funzioni sono più complesse da calcolare rispetto a hash().

Sintassi

hash(source [,mod])

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
source scalare ✔️ Valore da hashare.
mod int Valore del modulo da applicare al risultato hash, in modo che il valore di output sia compreso tra 0 e mod - 1. Questo parametro è utile per limitare l'intervallo di valori di output possibili o per comprimere l'output della funzione hash in un intervallo più piccolo.

Restituisce

Valore hash dell'origine. Se viene specificato mod, la funzione restituisce il valore hash modulo il valore di mod, ovvero l'output della funzione sarà il resto del valore hash diviso da mod. L'output sarà un valore compreso tra 0 e mod - 1, inclusivo.

Esempio

Input stringa

print result=hash("World")
result
1846988464401551951

Input stringa con mod

print result=hash("World", 100)
result
51

Input datetime

print result=hash(datetime("2015-01-01"))
result
1380966698541616202

Usare l'hash per controllare la distribuzione dei dati

Usare la hash() funzione per il campionamento dei dati se i valori in una delle relative colonne vengono distribuiti uniformemente. Nell'esempio seguente i valori StartTime vengono distribuiti uniformemente e la funzione viene usata per eseguire una query sul 10% dei dati.

StormEvents 
| where hash(StartTime, 10) == 0
| summarize StormCount = count(), TypeOfStorms = dcount(EventType) by State 
| top 5 by StormCount desc