Sdílet prostřednictvím


Operátor sample

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Vrátí až zadaný počet náhodných řádků ze vstupní tabulky.

Poznámka:

  • sample je určena pro rychlost, nikoli pro rovnoměrné rozdělení hodnot. Konkrétně to znamená, že nevygeneruje "spravedlivé" výsledky, pokud se použijí po operátorech, které sjednocují dvě datové sady různých velikostí (například operátory union nebo join operátory). Doporučuje se použít sample přímo za odkazem na tabulku a filtry.
  • sample je ne deterministický operátor a při každém vyhodnocení dotazu vrátí jinou sadu výsledků. Například následující dotaz vrátí dva různé řádky (i když by jeden očekával, že vrátí stejný řádek dvakrát).

Syntaxe

T| sampleNumberOfRows

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
T string ✔️ Vstupní tabulkový výraz.
NumberOfRows int, long nebo real ✔️ Počet řádků, které se mají vrátit. Můžete zadat libovolný číselný výraz.

Příklady

Příklad v této části ukazuje, jak použít syntaxi, která vám pomůže začít.

Příklady v tomto článku používají veřejně dostupné tabulky v clusteru nápovědy, jako je StormEvents tabulka v databázi Ukázky.

Příklady v tomto článku používají veřejně dostupné tabulky, jako je tabulka StormEvents v analýze počasí, ukázková data.

Vygenerování ukázky

Tento dotaz vytvoří rozsah čísel, vzorkuje jednu hodnotu a potom tento vzorek duplikuje.

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

Výstup

linka
74
63

Pokud chcete zajistit, aby se výše uvedený _sample příklad vypočítal jednou, můžete použít funkci materialize():

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

Výstup

linka
24
24

Vygenerování vzorku určitého procenta dat

Pokud chcete vzorkovat určité procento dat (místo zadaného počtu řádků), můžete použít

StormEvents | where rand() < 0.1

Výstup

Tabulka obsahuje několik prvních řádků výstupu. Spuštěním dotazu zobrazte úplný výsledek.

Počáteční čas Koncový čas Id epizody ID události Stát Typ události
2007-01-01T00:00:00Z 2007-01-20T10:24:00Z 2403 11914 INDIANA Povodeň
2007-01-01T00:00:00Z 2007-01-24T18:47:00Z 2408 11930 INDIANA Povodeň
2007-01-01T00:00:00Z 2007-01-01T12:00:00Z 1979 12631 DELAWARE Těžký déšť
2007-01-01T00:00:00Z 2007-01-01T00:00:00Z 2592 13208 SEVERNÍ KAROLÍNA Bouřlivá vítr
2007-01-01T00:00:00Z 2007-01-31T23:59:00Z 1492 7069 MINNESOTA Sucho
2007-01-01T00:00:00Z 2007-01-31T23:59:00Z 2240 10858 TEXAS Sucho
... ... ... ... ... ...

Vygenerování ukázky klíčů

Pokud chcete vzorkovat klíče místo řádků (například vzorek 10 ID a získat všechny řádky těchto ID), můžete použít sample-distinct v kombinaci s operátorem in.

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

Výstup

Tabulka obsahuje několik prvních řádků výstupu. Spuštěním dotazu zobrazte úplný výsledek.

Počáteční čas Koncový čas Id epizody ID události Stát Typ události
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Těžký déšť
2007-09-20T21:57:00Z 2007-09-20T22:05:00Z 11078 60913 FLORIDA Tornádo
2007-09-29T08:11:00Z 2007-09-29T08:11:00Z 11091 61032 ATLANTICKÝ JIH Okapová trouba
2007-12-07T14:00:00Z 2007-12-08T04:00:00Z 13183 73241 AMERICKÁ SAMOA Velká voda
2007-12-11T21:45:00Z 2007-12-12T16:45:00Z 12826 70787 KANSAS Povodeň
2007-12-13T09:02:00Z 2007-12-13T10:30:00Z 11780 64725 KENTUCKY Povodeň
... ... ... ... ... ...