Partager via


sample operator

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

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

Note

  • 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).

Syntax

T| sampleNumberOfRows

Learn more about syntax conventions.

Parameters

Name Type Required 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.

Examples

L’exemple de cette section montre comment utiliser la syntaxe pour vous aider à commencer.

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. Vous devrez peut-être modifier le nom de la table dans l’exemple de requête pour qu’elle corresponde à la table de votre espace de travail.

Générer un exemple

Cette requête crée une plage de nombres, échantillonne une valeur, puis doublons cet exemple.

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

Générer un échantillon d’un certain pourcentage de données

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

Output

Le tableau contient les premières lignes de la sortie. Exécutez la requête pour afficher le résultat complet.

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
... ... ... ... ... ...

Générer un exemple de clés

Pour échantillonner des clés plutôt que des lignes (par exemple , exemple 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)

Output

Le tableau contient les premières lignes de la sortie. Exécutez la requête pour afficher le résultat complet.

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
... ... ... ... ... ...