Bagikan melalui


operator sample

Menampilkan ke jumlah baris acak yang ditentukan dari tabel input.

Catatan

  • sample dioptimalkan untuk kecepatan, bukan distribusi nilai yang merata. Secara khusus, itu berarti bahwa itu tidak akan menghasilkan hasil 'adil' jika digunakan setelah operator yang menyanggah 2 himpunan data dengan ukuran yang union berbeda (seperti operator atau join ). Sebaiknya gunakan sample tepat setelah filter dan referensi tabel.
  • sample adalah operator non-deterministik, dan akan menampilkan tataan hasil setiap kali dievaluasi selama kueri. Misalnya, kueri berikut menangguhkan dua baris yang berbeda (bahkan jika salah satu kueri akan menampilkan baris yang sama dua kali).

Sintaks

T | sample NumberOfRows

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
T string ✔️ Ekspresi tabular input.
NumberOfRows int, long, atau real ✔️ Jumlah baris yang akan dikembalikan. Anda dapat menentukan ekspresi numerik apa pun.

Contoh

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

Hasil

x
83
3

Untuk memastikan bahwa dalam contoh di atas _sample dihitung sekali, salah satu ekspresi dapat menggunakan fungsi materialize():

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

Hasil

x
34
34

Untuk mengambil sampel persentase tertentu dari data Anda (bukan jumlah baris tertentu), Anda dapat menggunakan

StormEvents | where rand() < 0.1

Untuk mengambil sampel kunci, bukan baris (misalnya - 10 ID sampel dan dapatkan semua baris untuk ID tersebut) Anda dapat menggunakan sample-distinct yang dikombinasikan dengan operator in.

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