Bagikan melalui


operator sample

Berlaku untuk: ✅Microsoft Fabric

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 mengembalikan tataan hasil yang berbeda 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| sampleNumberOfRows

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

Contoh di bagian ini memperlihatkan cara menggunakan sintaks untuk membantu Anda memulai.

Contoh dalam artikel ini menggunakan tabel yang tersedia untuk umum di membantu kluster, seperti tabel StormEvents di database Sampel.

Contoh dalam artikel ini menggunakan tabel yang tersedia untuk umum, seperti tabel StormEvents di analitik Cuaca data sampel.

Membuat sampel

Kueri ini membuat rentang angka, sampel satu nilai, lalu menduplikasi sampel tersebut.

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

Hasil

x
74
63

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

Membuat sampel persentase data tertentu

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

StormEvents | where rand() < 0.1

Hasil

Tabel berisi beberapa baris pertama output. Jalankan kueri untuk menampilkan hasil lengkapnya.

StartTime EndTime EpisodeId EventId Negara EventType
2007-01-01T00:00:00Z 2007-01-20T10:24:00Z 2403 11914 INDIANA Banjir
2007-01-01T00:00:00Z 2007-01-24T18:47:00Z 2408 11930 INDIANA Banjir
2007-01-01T00:00:00Z 2007-01-01T12:00:00Z 1979 12631 DELAWARE Hujan Lebat
2007-01-01T00:00:00Z 2007-01-01T00:00:00Z 2592 13208 CAROLINA UTARA Angin Badai Petirweather forether forE
2007-01-01T00:00:00Z 2007-01-31T23:59:00Z 1492 7069 MINNESOTA Kekeringan
2007-01-01T00:00:00Z 2007-01-31T23:59:00Z 2240 10858 TEXAS Kekeringan
... ... ... ... ... ...

Membuat sampel kunci

Untuk mengambil sampel kunci daripada baris (misalnya - sampel 10 Id dan mendapatkan semua baris untuk Id ini), Anda dapat menggunakan sample-distinct dalam kombinasi dengan operator in.

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

Hasil

Tabel berisi beberapa baris pertama output. Jalankan kueri untuk menampilkan hasil lengkapnya.

StartTime EndTime EpisodeId EventId Negara EventType
2007-09-18T20:00:00Z 2007-09-19T18:00:00Z 11074 60904 FLORIDA Hujan Lebat
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 SELATAN Waterspout
2007-12-07T14:00:00Z 2007-12-08T04:00:00Z 13183 73241 SAMOA AMERIKA Banjir Bandang
2007-12-11T21:45:00Z 2007-12-12T16:45:00Z 12826 70787 KANSAS Banjir
2007-12-13T09:02:00Z 2007-12-13T10:30:00Z 11780 64725 KENTUCKY Banjir
... ... ... ... ... ...