Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
MURMUR3_32_HASH
Fungsi MURMUR3_32_HASH menghitung hash non-kriptografi Murmur3A 32-bit untuk semua tipe data umum termasuk tipe numerik dan string.
Sintaksis
MURMUR3_32_HASH(value [, seed])
Pendapat
- nilai
-
Nilai input untuk hash. AWS Clean Roomshash representasi biner dari nilai input. Perilaku ini mirip dengan FNV_HASH, tetapi nilainya dikonversi ke representasi biner yang ditentukan oleh spesifikasi hash Murmur3 32-bit Apache
Iceberg. - benih
-
Benih INT dari fungsi hash. Argumen ini opsional. Jika tidak diberikan, AWS Clean Rooms gunakan seed default 0. Ini memungkinkan menggabungkan hash dari beberapa kolom tanpa konversi atau penggabungan apa pun.
Jenis pengembalian
Fungsi mengembalikan INT.
Contoh
Contoh berikut mengembalikan hash Murmur3 dari angka, string 'AWS Clean Rooms', dan rangkaian keduanya.
select MURMUR3_32_HASH(1); MURMUR3_32_HASH ---------------------- -5968735742475085980 (1 row)
select MURMUR3_32_HASH('AWS Clean Rooms'); MURMUR3_32_HASH ---------------------- 7783490368944507294 (1 row)
select MURMUR3_32_HASH('AWS Clean Rooms', MURMUR3_32_HASH(1)); MURMUR3_32_HASH ---------------------- -2202602717770968555 (1 row)
Catatan penggunaan
Untuk menghitung hash tabel dengan beberapa kolom, Anda dapat menghitung hash Murmur3 dari kolom pertama dan meneruskannya sebagai benih ke hash kolom kedua. Kemudian, ia melewati hash Murmur3 dari kolom kedua sebagai benih ke hash kolom ketiga.
Contoh berikut menciptakan benih untuk hash tabel dengan beberapa kolom.
select MURMUR3_32_HASH(column_3, MURMUR3_32_HASH(column_2, MURMUR3_32_HASH(column_1))) from sample_table;
Properti yang sama dapat digunakan untuk menghitung hash dari rangkaian string.
select MURMUR3_32_HASH('abcd'); MURMUR3_32_HASH --------------------- -281581062704388899 (1 row)
select MURMUR3_32_HASH('cd', MURMUR3_32_HASH('ab')); MURMUR3_32_HASH --------------------- -281581062704388899 (1 row)
Fungsi hash menggunakan jenis input untuk menentukan jumlah byte untuk hash. Gunakan casting untuk menegakkan jenis tertentu, jika perlu.
Contoh berikut menggunakan jenis input yang berbeda untuk menghasilkan hasil yang berbeda.
select MURMUR3_32_HASH(1::smallint); MURMUR3_32_HASH -------------------- 589727492704079044 (1 row)
select MURMUR3_32_HASH(1); MURMUR3_32_HASH ---------------------- -5968735742475085980 (1 row)
select MURMUR3_32_HASH(1::bigint); MURMUR3_32_HASH ---------------------- -8517097267634966620 (1 row)