Compartilhar via


Operador sample

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

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

Observação

  • 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 retornará um conjunto de resultados diferente cada vez que for avaliado durante a consulta. Por exemplo, a consulta a seguir produz duas linhas diferentes (mesmo que se espere retornar a mesma linha duas vezes).

Sintaxe

T | sample NúmeroDeLinhas

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
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.

Exemplos

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

Saída

x
83
3

Para garantir que o exemplo acima _sample seja calculado uma vez, pode-se usar a função materialize():

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

Saída

x
34
34

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

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

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