Operador sample
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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 aunion
orjoin
). Recomenda-se usarsample
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)