opérateur d’échantillon
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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, ununion
oujoin
des opérateurs). Il est recommandé d’utilisersample
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)