Saltar al contenido principal
ClickHouse usa una versión anterior de CityHash de Google.
CityHash cambió el algoritmo después de que lo incorporáramos a ClickHouse.La documentación de CityHash indica explícitamente que el usuario no debe confiar en valores hash concretos y no debe guardarlos en ningún sitio ni usarlos como clave de sharding.Pero, como expusimos esta función a los usuarios, tuvimos que fijar la versión de CityHash (en la 1.0.2). Y ahora garantizamos que el comportamiento de las funciones CityHash disponibles en SQL no cambiará.— Alexey Milovidov
NotaLa versión actual de CityHash de Google difiere de la variante cityHash64 de ClickHouse.No uses farmHash64 para obtener el valor de CityHash de Google. FarmHash es el sucesor de CityHash, pero no son totalmente compatibles.
StringClickHouse64CityHash64FarmHash64
Moscow1250790149629287863859927100784533574095992710078453357409
How can you write a big system without C++? -Paul Glick623794531165004562574929116295744250411716470977470720228
Consulta también Introducing CityHash para obtener una descripción y la explicación de por qué se creó. En resumen: un hash no criptográfico más rápido que MurmurHash, pero más complejo.

Implementaciones

Go

Puedes usar el paquete de Go go-faster/city, que implementa ambas variantes.
Última modificación el 10 de junio de 2026