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
let _data = range x from 1 to 100 step 1;
let _sample = _data | sample 1;
union (_sample), (_sample)
Výstup
linka |
---|
83 |
3 |
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 |
---|
34 |
34 |
Pokud chcete vzorkovat určité procento dat (místo zadaného počtu řádků), můžete použít
StormEvents | where rand() < 0.1
Pokud chcete vzorkovat klíče místo řádků (například vzorek 10 ID a získat všechny řádky těchto ID), můžete je použít sample-distinct
v kombinaci s operátorem in
.
let sampleEpisodes = StormEvents | sample-distinct 10 of EpisodeId;
StormEvents
| where EpisodeId in (sampleEpisodes)