Partager via


opérateur d’échantillon

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Retourne jusqu’au nombre spécifié de lignes aléatoires de la table d’entrée.

Remarque

  • sample est destiné à la vitesse plutôt qu’à la distribution des valeurs. Plus précisément, cela signifie qu’il ne produira pas de résultats « équitables » s’il est utilisé après les opérateurs qui union 2 jeux de données de tailles différentes (par exemple, un union ou join des opérateurs). Il est recommandé d’utiliser sample juste après la référence de table et les filtres.
  • sample est un opérateur non déterministe et retourne un jeu de résultats différent chaque fois qu’il est évalué pendant la requête. Par exemple, la requête suivante génère deux lignes différentes (même si on s’attend à retourner la même ligne deux fois).

Syntaxe

T | sample NumberOfRows

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
T string ✔️ Expression tabulaire d’entrée.
NumberOfRows int, long ou réel ✔️ Nombre de lignes à retourner. Vous pouvez spécifier n’importe quelle expression numérique.

Exemples

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

Sortie

x
83
3

Pour vous assurer que dans l’exemple ci-dessus _sample est calculé une seule fois, vous pouvez utiliser la fonction matérialiser() :

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

Sortie

x
34
34

Pour échantillonner un certain pourcentage de vos données (plutôt qu’un nombre spécifié de lignes), vous pouvez utiliser

StormEvents | where rand() < 0.1

Pour échantillonner des clés plutôt que des lignes (par exemple , échantillon de 10 ID et obtenir toutes les lignes de ces ID) vous pouvez utiliser sample-distinct en combinaison avec l’opérateur in .

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