Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

MURMUR3_32_HASH - Amazon Redshift

MURMUR3_32_HASH

A função MURMUR3_32_HASH 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

MURMUR3_32_HASH(value [, seed])

Argumentos

value

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_HASH, mas o valor é convertido na representação binária especificada pela especificação de hash Murmur3 de 32 bits do Apache Iceberg.

semente

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 função retorna um INT.

Exemplo

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

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)
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.