All Products
Search
Document Center

ApsaraDB RDS:ST_IsRandomSampled

Last Updated:Mar 29, 2026

Memeriksa apakah suatu record diambil sampelnya berdasarkan nilai hash-nya dan laju sampel yang ditentukan. Fungsi ini mengembalikan true jika record tersebut diambil sampelnya, atau false jika tidak. Probabilitas pengambilan sampel sama dengan nilai sample_rate.

Sintaksis

BOOLEAN ST_IsRandomSampled(RECORD tuple, INTEGER sample_rate)

Parameter

ParameterDescription
tupleProperti record yang digunakan untuk menghasilkan nilai hash. Sistem menentukan apakah suatu record akan diambil sampelnya berdasarkan hash ini. Gunakan ROW() untuk membuat hash dari multiple properti. Untuk rasio pengambilan sampel yang akurat di seluruh tabel, pilih properti atau kombinasi properti yang unik dan terdistribusi merata.
sample_rateProbabilitas pengambilan sampel, dinyatakan dalam persentase bilangan bulat. Misalnya, nilai 50 berarti setiap record memiliki peluang 50% untuk diambil sampelnya.

Deskripsi

  • Mengembalikan true jika record diambil sampelnya; mengembalikan false jika tidak.

  • Probabilitas pengambilan sampel dikendalikan oleh parameter sample_rate.

  • Nilai kembali ditentukan oleh tuple dan sample_rate.

  • Ketika diterapkan pada semua record dalam suatu tabel, tuple harus unik untuk setiap record agar jumlah record yang diambil sampelnya mendekati sample_rate × jumlah total record.

Contoh

-- Mengembalikan hasil untuk semua record. true dikembalikan untuk separuh record, dan false untuk separuh lainnya.
SELECT ST_IsRandomSampled(ROW(id), 50) FROM table;

-- Menghitung luas geometri yang memiliki probabilitas 80% untuk diambil sampelnya.
SELECT ST_Area(geom) FROM table WHERE ST_IsRandomSampled(ROW(geom), 80);

-- Memilih secara acak separuh geometri dan mengonversinya menjadi objek MVTGeom.
SELECT ST_AsMVTGeom(geom, ST_Transform(ST_TileEnvelope(0,0,0),4326)) FROM table
WHERE ST_IsRandomSampled(ROW(geom), 50) AND geom&&ST_Transform(ST_TileEnvelope(0,0,0),4326));