Freigeben über


sample-Operator

Gibt bis zur angegebenen Anzahl von zufälligen Zeilen aus der Eingabetabelle zurück.

Hinweis

  • sample ist auf Geschwindigkeit und nicht auf gleichmäßige Verteilung von Werten ausgerichtet. Insbesondere bedeutet dies, dass es keine "fairen" Ergebnisse erzeugt, wenn es nach Operatoren verwendet wird, die 2 Datasets unterschiedlicher Größe (z. B. einen union oder join Operatoren) verbinden. Es wird empfohlen, direkt nach dem Tabellenverweis und den Filtern zu verwenden sample .
  • sample ist ein nicht deterministischer Operator und gibt jedes Mal, wenn es während der Abfrage ausgewertet wird, ein anderes Resultset zurück. Die folgende Abfrage ergibt beispielsweise zwei unterschiedliche Zeilen (auch wenn erwartet wird, dass dieselbe Zeile zweimal zurückgegeben wird).

Syntax

T| sampleNumberOfRows

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich Beschreibung
T string ✔️ Der tabellarische Eingabeausdruck.
NumberOfRows int, long oder real ✔️ Die Anzahl der zurückzugebenden Zeilen. Sie können einen beliebigen numerischen Ausdruck angeben.

Beispiele

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

Ausgabe

x
83
3

Um sicherzustellen, dass im obigen _sample Beispiel einmal berechnet wird, kann die Materialize() -Funktion verwendet werden:

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

Ausgabe

x
34
34

Um einen bestimmten Prozentsatz Ihrer Daten (anstelle einer angegebenen Anzahl von Zeilen) zu erfassen, können Sie verwenden.

StormEvents | where rand() < 0.1

Sie können sample-distinct in Kombination mit dem Operator verwenden, um Anstelle von Zeilen Stichprobenschlüssel anstelle von in Zeilen (z. B. 10 Ids zu beispielen und alle Zeilen für diese IDs abzurufen).

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