Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
MURMUR3_32_ HASH
HASHFungsi MURMUR3 _32_ menghitung hash non-kriptografi Murmur3A 32-bit untuk semua tipe data umum termasuk tipe numerik dan string.
Sintaks
MURMUR3_32_HASH(value [, seed])
Argumen
- nilai
-
Nilai input untuk hash. Amazon Redshift melakukan hash representasi biner dari nilai input. Perilaku ini mirip denganFNV_ HASH fungsi, tetapi nilainya dikonversi ke representasi biner yang ditentukan oleh spesifikasi hash Murmur3 32-bit Apache Iceberg
. - benih
-
INTBenih dari fungsi hash. Argumen ini opsional. Jika tidak diberikan, Amazon Redshift menggunakan seed default 0. Ini memungkinkan menggabungkan hash dari beberapa kolom tanpa konversi atau penggabungan apa pun.
Jenis pengembalian
Fungsi mengembalikan sebuahINT.
Contoh
Contoh berikut mengembalikan hash Murmur3 dari sebuah angka, string 'Amazon Redshift', dan rangkaian keduanya.
select MURMUR3_32_HASH(1); MURMUR3_32_HASH ---------------------- 1392991556 (1 row)
select MURMUR3_32_HASH('Amazon Redshift'); MURMUR3_32_HASH ---------------------- -1563580564 (1 row)
select MURMUR3_32_HASH('Amazon Redshift', MURMUR3_32_HASH(1)); MURMUR3_32_HASH ---------------------- -1346554171 (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 --------------------- 1139631978 (1 row)
select MURMUR3_32_HASH('cd', MURMUR3_32_HASH('ab')); MURMUR3_32_HASH --------------------- 1711522338 (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, MURMUR3_32_HASH(1)); MURMUR3_32_HASH -------------------- -1193428387 (1 row)
select MURMUR3_32_HASH(1); MURMUR3_32_HASH ---------------------- 1392991556 (1 row)
select MURMUR3_32_HASH(1, MURMUR3_32_HASH(2)); MURMUR3_32_HASH ---------------------- 1179621905 (1 row)