Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Función FNV_HASH - Amazon Redshift

Función FNV_HASH

Calcula la función hash no criptográfica FNV-1a de 64 bits para todos los tipos de datos básicos.

Sintaxis

FNV_HASH(value [, seed])

Argumentos

value

El valor de entrada al que se le aplicará un algoritmo hash. Amazon Redshift utiliza la representación binaria del valor para aplicar un algoritmo hash al valor de entrada; por ejemplo, a los valores INTEGER se les aplica un algoritmo hash con 4 bytes y a los valores BIGINT se les aplica un algoritmo hash con 8 bytes. Además, las entradas de hash CHAR y VARCHAR no ignoran los espacios finales.

valor de inicialización

El valor de inicialización BIGINT de la función hash es opcional. Si no se proporciona, Amazon Redshift utiliza el valor de inicialización FNV predeterminado. Esto permite combinar el hash de varias columnas sin conversiones ni concatenaciones.

Tipo de retorno

BIGINT

Ejemplo

En los siguientes ejemplos se devuelve el hash FNV de un número, la cadena "Amazon Redshift" y la concatenación de los dos.

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)

Notas de uso

  • Para calcular el hash de una tabla con varias columnas, puede calcular el hash FNV de la primera columna y pasarlo como valor de inicialización al hash de la segunda columna. A continuación, pasa el hash FNV de la segunda columna como valor de inicialización al hash de la tercera columna.

    En el siguiente ejemplo, se crean valores de inicialización para aplicar un algoritmo hash a una tabla con varias columnas.

    select fnv_hash(column_3, fnv_hash(column_2, fnv_hash(column_1))) from sample_table;
  • La misma propiedad se puede utilizar para calcular el hash de una concatenación de cadenas.

    select fnv_hash('abcd'); fnv_hash --------------------- -281581062704388899 (1 row)
    select fnv_hash('cd', fnv_hash('ab')); fnv_hash --------------------- -281581062704388899 (1 row)
  • La función hash utiliza el tipo de entrada para determinar el número de bytes para aplicar un algoritmo hash. Utilice la conversión para aplicar un tipo específico, si es necesario.

    En los ejemplos siguientes se utilizan diferentes tipos de entrada para producir resultados diferentes.

    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)

Tema siguiente:

MD5

Tema anterior:

FUNC_SHA1
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.