Operátor sample
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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átoryunion
nebojoin
operátory). Doporučuje se použítsample
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| sample
NumberOfRows
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ň |
... | ... | ... | ... | ... | ... |