Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
MURMUR3_32_HASH
La funzione MURMUR3_32_HASH calcola l'hash non crittografato Murmur3A a 32 bit per tutti i tipi di dati comuni, inclusi i tipi numerici e di stringa.
Sintassi
MURMUR3_32_HASH(value [, seed])
Argomenti
- value
-
Il valore di input da hash. AWS Clean Roomsesegue l'hash della rappresentazione binaria del valore di input. Questo comportamento è simile a FNV_HASH, ma il valore viene convertito nella rappresentazione binaria specificata dalla specifica di hash Murmur3 a 32 bit di Apache Iceberg
. - seed
-
Il seed INT della funzione hash. Questo argomento è facoltativo. Se non viene fornito, utilizza il seme predefinito pari a 0. AWS Clean Rooms Ciò consente di combinare l'hash di più colonne senza conversioni o concatenazioni.
Tipo restituito
La funzione restituisce un INT.
Esempio
Gli esempi seguenti restituiscono l'hash Murmur3 di un numero, la stringa 'AWS Clean Rooms' e la concatenazione dei due.
select MURMUR3_32_HASH(1); MURMUR3_32_HASH ---------------------- -5968735742475085980 (1 row)
select MURMUR3_32_HASH('AWS Clean Rooms'); MURMUR3_32_HASH ---------------------- 7783490368944507294 (1 row)
select MURMUR3_32_HASH('AWS Clean Rooms', MURMUR3_32_HASH(1)); MURMUR3_32_HASH ---------------------- -2202602717770968555 (1 row)
Note per l'utilizzo
Per calcolare l'hash di una tabella con più colonne, puoi calcolare l'hash Murmur3 della prima colonna e passarlo come seed all'hash della seconda colonna. Quindi, passa l'hash Murmur3 della seconda colonna come seed all'hash della terza colonna.
L'esempio seguente crea i seed per sottoporre all'hash una tabella con più colonne.
select MURMUR3_32_HASH(column_3, MURMUR3_32_HASH(column_2, MURMUR3_32_HASH(column_1))) from sample_table;
La stessa proprietà può essere utilizzata per calcolare l'hash di una concatenazione di stringhe.
select MURMUR3_32_HASH('abcd'); MURMUR3_32_HASH --------------------- -281581062704388899 (1 row)
select MURMUR3_32_HASH('cd', MURMUR3_32_HASH('ab')); MURMUR3_32_HASH --------------------- -281581062704388899 (1 row)
La funzione hash utilizza il tipo di input per determinare il numero di byte da sottoporre all'hash. Utilizzare il casting per applicare un tipo specifico, se necessario.
Negli esempi seguenti vengono utilizzati diversi tipi di input per produrre risultati differenti.
select MURMUR3_32_HASH(1::smallint); MURMUR3_32_HASH -------------------- 589727492704079044 (1 row)
select MURMUR3_32_HASH(1); MURMUR3_32_HASH ---------------------- -5968735742475085980 (1 row)
select MURMUR3_32_HASH(1::bigint); MURMUR3_32_HASH ---------------------- -8517097267634966620 (1 row)