Compartir a través de


sample operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Devuelve hasta el número especificado de filas aleatorias de la tabla de entrada.

Note

  • sample está orientado a la velocidad en lugar de incluso a la distribución de valores. En concreto, significa que no generará resultados "justos" si se usan después de los operadores que union 2 conjuntos de datos de tamaños diferentes (como un union operador o join ). Se recomienda usar sample justo después de la referencia de tabla y los filtros.
  • sample es un operador no determinista y devuelve un conjunto de resultados diferente cada vez que se evalúa durante la consulta. Por ejemplo, la consulta siguiente produce dos filas diferentes (incluso si se espera que se devuelva la misma fila dos veces).

Syntax

T| sampleNumberOfRows

Learn more about syntax conventions.

Parameters

Name Type Required Description
T string ✔️ Expresión tabular de entrada.
NumberOfRows int, long o real ✔️ Número de filas que se va a devolver. Puede especificar cualquier expresión numérica.

Examples

En el ejemplo de esta sección se muestra cómo usar la sintaxis para ayudarle a empezar.

The examples in this article use publicly available tables in the help cluster, such as the StormEvents table in the Samples database.

The examples in this article use publicly available tables, such as the Weather table in the Weather analytics sample gallery. Es posible que tenga que modificar el nombre de la tabla en la consulta de ejemplo para que coincida con la tabla del área de trabajo.

Generación de un ejemplo

Esta consulta crea un intervalo de números, muestra un valor y, a continuación, duplica ese ejemplo.

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

Output

x
74
63

To ensure that in example above _sample is calculated once, one can use materialize() function:

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

Output

x
24
24

Generación de un ejemplo de un determinado porcentaje de datos

Para muestrear un determinado porcentaje de los datos (en lugar de un número especificado de filas), puede usar

StormEvents | where rand() < 0.1

Output

La tabla contiene las primeras filas de la salida. Ejecute la consulta para ver el resultado completo.

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 Heavy Rain
2007-01-01T00:00:00Z 2007-01-01T00:00:00Z 2592 13208 NORTH CAROLINA Thunderstorm Wind
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
... ... ... ... ... ...

Generación de un ejemplo de claves

Para obtener claves de ejemplo en lugar de filas (por ejemplo, 10 identificadores de ejemplo y obtener todas las filas de estos identificadores), puede usar sample-distinct en combinación con el operador in.

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

Output

La tabla contiene las primeras filas de la salida. Ejecute la consulta para ver el resultado completo.

StartTime EndTime EpisodeId EventId State EventType
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Heavy Rain
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 ATLANTIC SOUTH Waterspout
2007-12-07T14:00:00Z 2007-12-08T04:00:00Z 13183 73241 AMERICAN SAMOA Flash Flood
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
... ... ... ... ... ...