Udostępnij przez


sample operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Zwraca maksymalnie określoną liczbę losowych wierszy z tabeli wejściowej.

Note

  • sample jest nastawiony na szybkość, a nie nawet rozkład wartości. W szczególności oznacza to, że nie będzie generować "sprawiedliwych" wyników, jeśli zostaną użyte po operatorach, które tworzą 2 zestawy danych o różnych rozmiarach (takich jak union operatory lub join ). Zaleca się użycie sample bezpośrednio po odwołaniu do tabeli i filtrach.
  • sample jest operatorem niedeterministycznym i zwraca inny zestaw wyników za każdym razem, gdy jest obliczany podczas zapytania. Na przykład następujące zapytanie zwraca dwa różne wiersze (nawet jeśli jeden z nich dwukrotnie zwróci ten sam wiersz).

Syntax

T| sampleNumberOfRows

Learn more about syntax conventions.

Parameters

Name Typ Required Description
T string ✔️ Wyrażenie tabelaryczne danych wejściowych.
NumberOfRows int, long lub real ✔️ Liczba wierszy do zwrócenia. Możesz określić dowolne wyrażenie liczbowe.

Examples

W przykładzie w tej sekcji pokazano, jak używać składni, aby ułatwić rozpoczęcie pracy.

The examples in this article use publicly available tables in the help cluster, such as the StormEvents table in the Samples database.

The examples in this article use publicly available tables, such as the Weather table in the Weather analytics sample gallery. Może być konieczne zmodyfikowanie nazwy tabeli w przykładowym zapytaniu, aby było zgodne z tabelą w obszarze roboczym.

Generowanie przykładu

To zapytanie tworzy zakres liczb, próbkuje jedną wartość, a następnie duplikuje tę próbkę.

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

Output

x
74
63

To ensure that in example above _sample is calculated once, one can use materialize() function:

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

Output

x
24
24

Generowanie próbki określonej wartości procentowej danych

Aby próbkować określony procent danych (a nie określoną liczbę wierszy), możesz użyć

StormEvents | where rand() < 0.1

Output

Tabela zawiera kilka pierwszych wierszy danych wyjściowych. Uruchom zapytanie, aby wyświetlić pełny wynik.

StartTime EndTime EpisodeId EventId State EventType
2007-01-01T00:00:00Z 2007-01-20T10:24:00Z 2403 11914 INDIANA Flood
2007-01-01T00:00:00Z 2007-01-24T18:47:00Z 2408 11930 INDIANA Flood
2007-01-01T00:00:00Z 2007-01-01T12:00:00Z 1979 12631 DELAWARE Heavy Rain
2007-01-01T00:00:00Z 2007-01-01T00:00:00Z 2592 13208 NORTH CAROLINA Thunderstorm Wind
2007-01-01T00:00:00Z 2007-01-31T23:59:00Z 1492 7069 MINNESOTA Drought
2007-01-01T00:00:00Z 2007-01-31T23:59:00Z 2240 10858 TEXAS Drought
... ... ... ... ... ...

Generowanie przykładu kluczy

Aby próbkować klucze, a nie wiersze (na przykład — przykładowe 10 identyfikatorów i pobierać wszystkie wiersze dla tych identyfikatorów), możesz użyć sample-distinct w połączeniu z operatorem in.

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

Output

Tabela zawiera kilka pierwszych wierszy danych wyjściowych. Uruchom zapytanie, aby wyświetlić pełny wynik.

StartTime EndTime EpisodeId EventId State EventType
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Heavy Rain
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tornado
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTIC SOUTH Waterspout
2007-12-07T14:00:00Z 2007-12-08T04:00:00Z 13183 73241 AMERICAN SAMOA Flash Flood
2007-12-11T21:45:00Z 2007-12-12T16:45:00Z 12826 70787 KANSAS Flood
2007-12-13T09:02:00Z 2007-12-13T10:30:00Z 11780 64725 KENTUCKY Flood
... ... ... ... ... ...