MURMUR3_32_HASH - AWS Clean Rooms

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)