Пример оператора

Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Возвращает до указанного числа случайных строк из входной таблицы.

Note

  • sample предназначен для скорости, а не даже распределения значений. В частности, это означает, что он не будет производить "справедливые" результаты, если используются после операторов, которые объединение двух наборов данных различных размеров (например union , операторов или join операторов). Рекомендуется использовать sample сразу после ссылки на таблицу и фильтров.
  • sample является недетерминированным оператором и возвращает другой результирующий набор при каждом вычислении во время запроса. Например, следующий запрос выдает две разные строки (даже если вы ожидаете, что они будут возвращать одну и ту же строку дважды).

Syntax

T| sampleNumberOfRows

Дополнительные сведения о соглашениях синтаксиса.

Parameters

Name Type Required Description
T string ✔️ Входное табличное выражение.
NumberOfRows int, long или real ✔️ Количество возвращаемых строк. Можно указать любое числовое выражение.

Examples

В этом разделе показано, как использовать синтаксис для начала работы.

Примеры, приведенные в этой статье, используют общедоступные таблицы в кластере справки, например StormEvents таблицу в базе данных Samples .

В примерах этой статьи используются общедоступные таблицы, такие как Weather таблица в коллекции примеров Weather Analytics. Возможно, потребуется изменить имя таблицы в примере запроса, чтобы она соответствовала таблице в рабочей области.

Создание примера

Этот запрос создает диапазон чисел, примеров одного значения, а затем дублирует этот пример.

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

Output

x
74
63

Чтобы убедиться, что в приведенном выше _sample примере вычисляется один раз, можно использовать функцию materialize():

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

Output

x
24
24

Создание образца определенного процента данных

Для выборки определенного процента данных (а не указанного количества строк) можно использовать

StormEvents | where rand() < 0.1

Output

Таблица содержит первые несколько строк выходных данных. Выполните запрос, чтобы просмотреть полный результат.

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 Ливень
2007-01-01T00:00:00Z 2007-01-01T00:00:00Z 2592 13208 СЕВЕРНАЯ КАРОЛИНА Ураганный ветер
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
... ... ... ... ... ...

Создание примера ключей

Чтобы использовать примеры ключей, а не строк (например, пример 10 идентификаторов и получение всех строк для этих идентификаторов), можно использовать sample-distinct в сочетании с оператором in.

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

Output

Таблица содержит первые несколько строк выходных данных. Выполните запрос, чтобы просмотреть полный результат.

StartTime EndTime EpisodeId EventId State EventType
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Ливень
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 ЮЖНАЯ АТЛАНТИКА Waterspout
2007-12-07T14:00:00Z 2007-12-08T04:00:00Z 13183 73241 АМЕРИКАНСКОЕ САМОА Паводок
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
... ... ... ... ... ...