Dela via


sample-operatorn

Returnerar upp till det angivna antalet slumpmässiga rader från indatatabellen.

Anteckning

  • sample är inriktad på hastighet snarare än till och med fördelning av värden. Mer specifikt innebär det att det inte kommer att ge "rättvisa" resultat om de används efter operatörer som union 2 datauppsättningar av olika storlekar (till exempel en union eller join operatörer). Vi rekommenderar att du använder sample direkt efter tabellreferensen och filter.
  • sample är en icke-deterministisk operator och returnerar olika resultatuppsättningar varje gång den utvärderas under frågan. Följande fråga ger till exempel två olika rader (även om man förväntar sig att returnera samma rad två gånger).

Syntax

T| sampleNumberOfRows

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
T string ✔️ Tabelluttrycket för indata.
NumberOfRows int, long eller real ✔️ Det antal rader som ska returneras. Du kan ange valfritt numeriskt uttryck.

Exempel

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

Resultat

x
83
3

För att säkerställa att i exemplet ovan _sample beräknas en gång kan man använda funktionen materialize():

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

Resultat

x
34
34

Om du vill prova en viss procentandel av dina data (i stället för ett angivet antal rader) kan du använda

StormEvents | where rand() < 0.1

Om du vill prova nycklar i stället för rader (till exempel – exempel 10 ID:n och hämta alla rader för dessa ID:n) kan du använda sample-distinct i kombination med operatorn in .

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