Share via


Operatore sample

Restituisce fino al numero specificato di righe casuali dalla tabella di input.

Nota

  • sample è a forma di velocità anziché anche di distribuzione dei valori. In particolare, significa che non produrrà risultati "equi" se usati dopo gli operatori che unione 2 set di dati di dimensioni diverse (ad esempio un union o join operatori). È consigliabile usare sample subito dopo il riferimento e i filtri della tabella.
  • sample è un operatore non deterministico e restituirà un set di risultati diverso ogni volta che viene valutato durante la query. Ad esempio, la query seguente restituisce due righe diverse, anche se si prevede di restituire la stessa riga due volte.

Sintassi

T| sampleNumberOfRows

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
T string ✔️ Espressione tabulare di input.
NumberOfRows int, long o reale ✔️ Numero di righe da restituire. È possibile specificare qualsiasi espressione numerica.

Esempio

let _data = range x from 1 to 100 step 1;
let _sample = _data | sample 1;
union (_sample), (_sample)

Output

x
83
3

Per assicurarsi che nell'esempio precedente _sample venga calcolato una volta, è possibile usare la funzione materialze():

let _data = range x from 1 to 100 step 1;
let _sample = materialize(_data | sample 1);
union (_sample), (_sample)

Output

x
34
34

Per esempio una determinata percentuale dei dati (anziché un numero specificato di righe), è possibile usare

StormEvents | where rand() < 0.1

Per esempi di chiavi anziché righe , ad esempio 10 ID di esempio e ottenere tutte le righe per questi ID, è possibile usare sample-distinct in combinazione con l'operatore in .

let sampleEpisodes = StormEvents | sample-distinct 10 of EpisodeId;
StormEvents
| where EpisodeId in (sampleEpisodes)