Compartilhar via


sample operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Retorna até o número especificado de linhas aleatórias da tabela de entrada.

Note

  • sample é voltado para a velocidade, e não para a distribuição uniforme de valores. Especificamente, isso significa que não produzirá resultados 'justos' se usado após operadores que unem 2 conjuntos de dados de tamanhos diferentes (como operadores a union or join ). Recomenda-se usar sample logo após a referência da tabela e os filtros.
  • sample é um operador não determinístico e retorna um conjunto de resultados diferente sempre que é avaliado durante a consulta. Por exemplo, a consulta a seguir produz duas linhas diferentes (mesmo que se espere retornar a mesma linha duas vezes).

Syntax

T| sampleNumberOfRows

Learn more about syntax conventions.

Parameters

Name Tipo Required Description
T string ✔️ A expressão tabular de entrada.
NumberOfRows int, long ou real ✔️ Número de linhas a ser retornado. Você pode especificar qualquer expressão numérica.

Examples

O exemplo nesta seção mostra como usar a sintaxe para ajudá-lo a começar.

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. Talvez seja necessário modificar o nome da tabela na consulta de exemplo para corresponder à tabela em seu workspace.

Gerar um exemplo

Essa consulta cria um intervalo de números, amostra um valor e, em seguida, duplica esse exemplo.

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

Gerar um exemplo de uma determinada porcentagem de dados

Para obter uma amostra de uma determinada porcentagem de seus dados (em vez de um número especificado de linhas), você pode usar

StormEvents | where rand() < 0.1

Output

A tabela contém as primeiras linhas da saída. Execute a consulta para exibir o 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
... ... ... ... ... ...

Gerar um exemplo de chaves

Para obter chaves de exemplo em vez de linhas (por exemplo , exemplo 10 IDs e obter todas as linhas para essas Ids), você pode usar sample-distinct em combinação com o operador in.

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

Output

A tabela contém as primeiras linhas da saída. Execute a consulta para exibir o 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
... ... ... ... ... ...