

 O Amazon Redshift não permitirá mais a criação de UDFs do Python a partir do Patch 198. As UDFs do Python existentes continuarão a funcionar normalmente até 30 de junho de 2026. Para ter mais informações, consulte a [publicação de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# MURMUR3\$132\$1HASH
<a name="MURMUR3_32_HASH"></a>

A função MURMUR3\$132\$1HASH calcula o hash não criptográfico Murmur3A de 32 bits para todos os tipos de dados comuns, incluindo tipos numéricos e de string.

## Sintaxe
<a name="MURMUR3_32_HASH-syntax"></a>

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

## Argumentos
<a name="MURMUR3_32_HASH-arguments"></a>

 *valor*   
O valor de entrada para aplicar o hash. O Amazon Redshift faz hash da representação binária do valor de entrada. Esse comportamento é semelhante a [Função FNV\$1HASH](r_FNV_HASH.md), mas o valor é convertido na representação binária especificada pela [especificação de hash Murmur3 de 32 bits do Apache Iceberg](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements).

 *seed*   
A semente INT da função de hash. Esse argumento é opcional. Se não for fornecida, o Amazon Redshift usará a semente padrão de 0. Isso permite combinar o hash de várias colunas sem conversões nem concatenações.

## Tipo de retorno
<a name="MURMUR3_32_HASH-return-type"></a>

A função retorna um INT.

## Exemplo
<a name="MURMUR3_32_HASH-example"></a>

Os exemplos a seguir retornam o hash Murmur3 de um número, a string “Amazon Redshift” e a concatenação dos dois.

```
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)
```

## Observações de uso
<a name="MURMUR3_32_HASH-usage-notes"></a>

Para calcular o hash de uma tabela com várias colunas, é possível calcular o hash Murmur3 da primeira coluna e transmiti-lo como uma semente para o hash da segunda coluna. Depois, ele passa o hash Murmur3 da segunda coluna como uma semente para o hash da terceira coluna.

O exemplo a seguir cria sementes para aplicar o hash a uma tabela com várias colunas.

```
select MURMUR3_32_HASH(column_3, MURMUR3_32_HASH(column_2, MURMUR3_32_HASH(column_1))) from sample_table;
```

A mesma propriedade pode ser usada para calcular o hash de uma concatenação de strings.

```
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)
```

A função de hash usa o tipo de entrada para determinar o número de bytes para hash. Use a fundição para impor um tipo específico, se necessário.

Os exemplos a seguir usam diferentes tipos de entrada para produzir resultados diferentes.

```
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)
```