Оператор sample
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Возвращает до указанного числа случайных строк из входной таблицы.
Примечание.
sample
предназначен для скорости, а не даже распределения значений. В частности, это означает, что он не будет производить "справедливые" результаты, если используются после операторов, которые объединение двух наборов данных различных размеров (напримерunion
, операторов илиjoin
операторов). Рекомендуется использоватьsample
сразу после ссылки на таблицу и фильтров.sample
является недетерминированным оператором и будет возвращать другой результирующий набор при каждом вычислении во время запроса. Например, следующий запрос выдает две разные строки (даже если вы ожидаете, что они будут возвращать одну и ту же строку дважды).
Синтаксис
T | sample
NumberOfRows
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
T | string |
✔️ | Входное табличное выражение. |
NumberOfRows | int, long или real | ✔️ | Количество возвращаемых строк. Можно указать любое числовое выражение. |
Примеры
let _data = range x from 1 to 100 step 1;
let _sample = _data | sample 1;
union (_sample), (_sample)
Выходные данные
x |
---|
83 |
3 |
Чтобы убедиться, что в приведенном выше _sample
примере вычисляется один раз, можно использовать функцию materialize():
let _data = range x from 1 to 100 step 1;
let _sample = materialize(_data | sample 1);
union (_sample), (_sample)
Выходные данные
x |
---|
34 |
34 |
Для выборки определенного процента данных (а не указанного количества строк) можно использовать
StormEvents | where rand() < 0.1
Чтобы использовать примеры ключей, а не строк (например, пример 10 идентификаторов и получение всех строк для этих идентификаторов), можно использовать sample-distinct
в сочетании с оператором in
.
let sampleEpisodes = StormEvents | sample-distinct 10 of EpisodeId;
StormEvents
| where EpisodeId in (sampleEpisodes)