

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fungsi FNV\$1HASH
<a name="r_FNV_HASH"></a>

Menghitung fungsi hash non-kriptografi FNV-1a 64-bit untuk semua tipe data dasar.

## Sintaksis
<a name="r_FNV_HASH-synopsis"></a>

```
FNV_HASH(value [, seed])
```

## Argumen
<a name="r_FNV_HASH-argument-arguments"></a>

 *nilai*  
Nilai input yang akan di-hash. Amazon Redshift menggunakan representasi biner dari nilai untuk hash nilai input; misalnya, nilai INTEGER di-hash menggunakan 4 byte dan nilai BIGINT di-hash menggunakan 8 byte. Selain itu, hashing input CHAR dan VARCHAR tidak mengabaikan spasi tambahan.

 *benih*  
Bigint seed dari fungsi hash adalah opsional. Jika tidak diberikan, Amazon Redshift menggunakan seed FNV default. Ini memungkinkan menggabungkan hash dari beberapa kolom tanpa konversi atau penggabungan apa pun.

## Jenis pengembalian
<a name="r_FNV_HASH-return-type"></a>

BIGINT

## Contoh
<a name="r_FNV_HASH-example"></a>

Contoh berikut mengembalikan hash FNV dari sebuah angka, string 'Amazon Redshift', dan rangkaian keduanya.

```
select fnv_hash(1);
        fnv_hash
----------------------
 -5968735742475085980
(1 row)
```

```
select fnv_hash('Amazon Redshift');
      fnv_hash
---------------------
 7783490368944507294
(1 row)
```

```
select fnv_hash('Amazon Redshift', fnv_hash(1));
       fnv_hash
----------------------
 -2202602717770968555
(1 row)
```

## Catatan penggunaan
<a name="r_FNV_HASH-usage-notes"></a>
+ Untuk menghitung hash tabel dengan beberapa kolom, Anda dapat menghitung hash FNV dari kolom pertama dan meneruskannya sebagai benih ke hash kolom kedua. Kemudian, ia melewati hash FNV dari kolom kedua sebagai benih ke hash kolom ketiga.

  Contoh berikut menciptakan benih untuk hash tabel dengan beberapa kolom. 

  ```
  select fnv_hash(column_3, fnv_hash(column_2, fnv_hash(column_1))) from sample_table;
  ```
+ Properti yang sama dapat digunakan untuk menghitung hash dari rangkaian string. 

  ```
  select fnv_hash('abcd');
         fnv_hash
  ---------------------
   -281581062704388899
  (1 row)
  ```

  ```
  select fnv_hash('cd', fnv_hash('ab'));
        fnv_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 berbagai jenis input untuk menghasilkan hasil yang berbeda.

  ```
  select fnv_hash(1::smallint);
        fnv_hash
  --------------------
   589727492704079044
  (1 row)
  ```

  ```
  select fnv_hash(1);
         fnv_hash
  ----------------------
   -5968735742475085980
  (1 row)
  ```

  ```
  select fnv_hash(1::bigint);
         fnv_hash
  ----------------------
   -8517097267634966620
  (1 row)
  ```