* replace exit with assert in test_single_page * improve save_raw_single_page docs option * More grammar fixes * "Built from" link in new tab * fix mistype * Example of include in docs * add anchor to meeting form * Draft of translation helper * WIP on translation helper * Replace some fa docs content with machine translation * add normalize-en-markdown.sh * normalize some en markdown * normalize some en markdown * admonition support * normalize * normalize * normalize * support wide tables * normalize * normalize * normalize * normalize * normalize * normalize * normalize * normalize * normalize * normalize * normalize * normalize * normalize * lightly edited machine translation of introdpection.md * lightly edited machhine translation of lazy.md * WIP on translation utils * Normalize ru docs * Normalize other languages * some fixes * WIP on normalize/translate tools * add requirements.txt * [experimental] add es docs language as machine translated draft * remove duplicate script * Back to wider tab-stop (narrow renders not so well)
15 KiB
Funciones hash
Las funciones Hash se pueden usar para la barajada pseudoaleatoria determinista de elementos.
HalfMD5
Interpretar todos los parámetros de entrada como cadenas y calcula el MD5 valor hash para cada uno de ellos. Luego combina hashes, toma los primeros 8 bytes del hash de la cadena resultante y los interpreta como UInt64
en orden de bytes de big-endian.
halfMD5(par1, ...)
La función es relativamente lenta (5 millones de cadenas cortas por segundo por núcleo del procesador). Considere usar el sipHash64 función en su lugar.
Parámetros
La función toma un número variable de parámetros de entrada. Los parámetros pueden ser cualquiera de los tipos de datos compatibles.
Valor devuelto
Un UInt64 tipo de datos valor hash.
Ejemplo
SELECT halfMD5(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS halfMD5hash, toTypeName(halfMD5hash) AS type
┌────────halfMD5hash─┬─type───┐
│ 186182704141653334 │ UInt64 │
└────────────────────┴────────┘
MD5
Calcula el MD5 de una cadena y devuelve el conjunto de bytes resultante como FixedString(16). Si no necesita MD5 en particular, pero necesita un hash criptográfico de 128 bits decente, use el ‘sipHash128’ función en su lugar. Si desea obtener el mismo resultado que la salida de la utilidad md5sum, use lower(hex(MD5(s)) .
sipHash64
Produce un SipHash valor hash.
sipHash64(par1,...)
Esta es una función hash criptográfica. Funciona al menos tres veces más rápido que el MD5 función.
Función interpretar todos los parámetros de entrada como cadenas y calcula el valor hash para cada uno de ellos. Luego combina hashes por el siguiente algoritmo:
- Después de hash todos los parámetros de entrada, la función obtiene la matriz de hashes.
- La función toma el primero y el segundo elementos y calcula un hash para la matriz de ellos.
- Luego, la función toma el valor hash, calculado en el paso anterior, y el tercer elemento de la matriz hash inicial, y calcula un hash para la matriz de ellos.
- El paso anterior se repite para todos los elementos restantes de la matriz hash inicial.
Parámetros
La función toma un número variable de parámetros de entrada. Los parámetros pueden ser cualquiera de los tipos de datos compatibles.
Valor devuelto
Un UInt64 tipo de datos valor hash.
Ejemplo
SELECT sipHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS SipHash, toTypeName(SipHash) AS type
┌──────────────SipHash─┬─type───┐
│ 13726873534472839665 │ UInt64 │
└──────────────────────┴────────┘
sipHash128
Calcula SipHash a partir de una cadena. Acepta un argumento de tipo String. Devuelve FixedString(16). Difiere de sipHash64 en que el estado final de plegado xor solo se realiza hasta 128 bits.
cityHash64
Produce un Método de codificación de datos: valor hash.
cityHash64(par1,...)
Esta es una función hash rápida no criptográfica. Utiliza el algoritmo CityHash para parámetros de cadena y la función hash no criptográfica rápida específica de la implementación para parámetros con otros tipos de datos. La función utiliza el combinador CityHash para obtener los resultados finales.
Parámetros
La función toma un número variable de parámetros de entrada. Los parámetros pueden ser cualquiera de los tipos de datos compatibles.
Valor devuelto
Un UInt64 tipo de datos valor hash.
Ejemplos
Ejemplo de llamada:
SELECT cityHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS CityHash, toTypeName(CityHash) AS type
┌─────────────CityHash─┬─type───┐
│ 12072650598913549138 │ UInt64 │
└──────────────────────┴────────┘
En el ejemplo siguiente se muestra cómo calcular la suma de comprobación de toda la tabla con precisión hasta el orden de fila:
SELECT groupBitXor(cityHash64(*)) FROM table
intHash32
Calcula un código hash de 32 bits a partir de cualquier tipo de entero. Esta es una función hash no criptográfica relativamente rápida de calidad media para los números.
intHash64
Calcula un código hash de 64 bits a partir de cualquier tipo de entero. Funciona más rápido que intHash32. Calidad media.
SHA1
SHA224
SHA256
Calcula SHA-1, SHA-224 o SHA-256 de una cadena y devuelve el conjunto de bytes resultante como FixedString(20), FixedString(28) o FixedString(32). La función funciona bastante lentamente (SHA-1 procesa alrededor de 5 millones de cadenas cortas por segundo por núcleo del procesador, mientras que SHA-224 y SHA-256 procesan alrededor de 2.2 millones). Recomendamos usar esta función solo en los casos en que necesite una función hash específica y no pueda seleccionarla. Incluso en estos casos, recomendamos aplicar la función offline y precalcular valores al insertarlos en la tabla, en lugar de aplicarlo en SELECTS.
Nombre de la red inalámbrica (SSID):])
Una función hash no criptográfica rápida y de calidad decente para una cadena obtenida de una URL utilizando algún tipo de normalización.
URLHash(s)
– Calcula un hash de una cadena sin uno de los símbolos finales /
,?
o #
al final, si está presente.
URLHash(s, N)
– Calcula un hash de una cadena hasta el nivel N en la jerarquía de URL, sin uno de los símbolos finales /
,?
o #
al final, si está presente.
Los niveles son los mismos que en URLHierarchy. Esta función es específica de Yandex.Métrica.
Método de codificación de datos:
Produce un Método de codificación de datos: valor hash.
farmHash64(par1, ...)
La función utiliza el Hash64
de todos métodos disponibles.
Parámetros
La función toma un número variable de parámetros de entrada. Los parámetros pueden ser cualquiera de los tipos de datos compatibles.
Valor devuelto
Un UInt64 tipo de datos valor hash.
Ejemplo
SELECT farmHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS FarmHash, toTypeName(FarmHash) AS type
┌─────────────FarmHash─┬─type───┐
│ 17790458267262532859 │ UInt64 │
└──────────────────────┴────────┘
Nombre de la red inalámbrica (SSID):
Calcular Nivel de Cifrado WEP de una cuerda. Esta función hash no es rápida ni tiene una buena calidad. La única razón para usarlo es cuando este algoritmo ya se usa en otro sistema y debe calcular exactamente el mismo resultado.
Sintaxis
SELECT javaHash('');
Valor devuelto
Un Int32
tipo de datos valor hash.
Ejemplo
Consulta:
SELECT javaHash('Hello, world!');
Resultado:
┌─javaHash('Hello, world!')─┐
│ -1880044555 │
└───────────────────────────┘
javaHashUTF16LE
Calcular Nivel de Cifrado WEP de una cadena, suponiendo que contiene bytes que representan una cadena en codificación UTF-16LE.
Sintaxis
javaHashUTF16LE(stringUtf16le)
Parámetros
stringUtf16le
— una cadena en codificación UTF-16LE.
Valor devuelto
Un Int32
tipo de datos valor hash.
Ejemplo
Consulta correcta con cadena codificada UTF-16LE.
Consulta:
SELECT javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))
Resultado:
┌─javaHashUTF16LE(convertCharset('test', 'utf-8', 'utf-16le'))─┐
│ 3556498 │
└──────────────────────────────────────────────────────────────┘
HiveHash
Calcular HiveHash
de una cuerda.
SELECT hiveHash('');
Esto es sólo Nivel de Cifrado WEP con poco de signo puesto a cero. Esta función se utiliza en Colmena de Apache para versiones anteriores a la 3.0. Esta función hash no es rápida ni tiene una buena calidad. La única razón para usarlo es cuando este algoritmo ya se usa en otro sistema y debe calcular exactamente el mismo resultado.
Valor devuelto
Un Int32
tipo de datos valor hash.
Tipo: hiveHash
.
Ejemplo
Consulta:
SELECT hiveHash('Hello, world!');
Resultado:
┌─hiveHash('Hello, world!')─┐
│ 267439093 │
└───────────────────────────┘
Método de codificación de datos:
Produce un Método de codificación de datos: valor hash.
metroHash64(par1, ...)
Parámetros
La función toma un número variable de parámetros de entrada. Los parámetros pueden ser cualquiera de los tipos de datos compatibles.
Valor devuelto
Un UInt64 tipo de datos valor hash.
Ejemplo
SELECT metroHash64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MetroHash, toTypeName(MetroHash) AS type
┌────────────MetroHash─┬─type───┐
│ 14235658766382344533 │ UInt64 │
└──────────────────────┴────────┘
SaltarConsistentHash
Calcula JumpConsistentHash forma un UInt64. Acepta dos argumentos: una clave de tipo UInt64 y el número de cubos. Devuelve Int32. Para obtener más información, consulte el enlace: SaltarConsistentHash
murmurHash2_32, murmurHash2_64
Produce un Método de codificación de datos: valor hash.
murmurHash2_32(par1, ...)
murmurHash2_64(par1, ...)
Parámetros
Ambas funciones toman un número variable de parámetros de entrada. Los parámetros pueden ser cualquiera de los tipos de datos compatibles.
Valor devuelto
- El
murmurHash2_32
función devuelve el valor hash que tiene el UInt32 tipo de datos. - El
murmurHash2_64
función devuelve el valor hash que tiene el UInt64 tipo de datos.
Ejemplo
SELECT murmurHash2_64(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash2, toTypeName(MurmurHash2) AS type
┌──────────MurmurHash2─┬─type───┐
│ 11832096901709403633 │ UInt64 │
└──────────────────────┴────────┘
murmurHash3_32, murmurHash3_64
Produce un Método de codificación de datos: valor hash.
murmurHash3_32(par1, ...)
murmurHash3_64(par1, ...)
Parámetros
Ambas funciones toman un número variable de parámetros de entrada. Los parámetros pueden ser cualquiera de los tipos de datos compatibles.
Valor devuelto
- El
murmurHash3_32
función devuelve un UInt32 tipo de datos valor hash. - El
murmurHash3_64
función devuelve un UInt64 tipo de datos valor hash.
Ejemplo
SELECT murmurHash3_32(array('e','x','a'), 'mple', 10, toDateTime('2019-06-15 23:00:00')) AS MurmurHash3, toTypeName(MurmurHash3) AS type
┌─MurmurHash3─┬─type───┐
│ 2152717 │ UInt32 │
└─────────────┴────────┘
murmurHash3_128
Produce un Método de codificación de datos: valor hash.
murmurHash3_128( expr )
Parámetros
expr
— Expresiones devolviendo un Cadena-tipo de valor.
Valor devuelto
Un Cadena fija (16) tipo de datos valor hash.
Ejemplo
SELECT murmurHash3_128('example_string') AS MurmurHash3, toTypeName(MurmurHash3) AS type
┌─MurmurHash3──────┬─type────────────┐
│ 6<>1<1C>4"S5KT<4B>~~q │ FixedString(16) │
└──────────────────┴─────────────────┘
xxHash32, xxHash64
Calcular xxHash
de una cuerda. Se propone en dos sabores, 32 y 64 bits.
SELECT xxHash32('');
OR
SELECT xxHash64('');
Valor devuelto
Un Uint32
o Uint64
tipo de datos valor hash.
Tipo: xxHash
.
Ejemplo
Consulta:
SELECT xxHash32('Hello, world!');
Resultado:
┌─xxHash32('Hello, world!')─┐
│ 834093149 │
└───────────────────────────┘
Ver también