Passer au contenu principal
ClickHouse utilise une ancienne version de CityHash de Google.
CityHash a modifié l’algorithme après son intégration dans ClickHouse.La documentation de CityHash précise explicitement que l’utilisateur ne doit pas se fier à des valeurs de hachage spécifiques, ni les enregistrer quelque part, ni les utiliser comme clé de sharding.Mais comme nous avons exposé cette fonction aux utilisateurs, nous avons dû figer la version de CityHash (à la 1.0.2). Nous garantissons désormais que le comportement des fonctions CityHash disponibles en SQL ne changera pas.— Alexey Milovidov
RemarqueLa version actuelle de CityHash de Google diffère de la variante cityHash64 de ClickHouse.N’utilisez pas farmHash64 pour obtenir la valeur de CityHash de Google ! FarmHash est le successeur de CityHash, mais ils ne sont pas entièrement compatibles.
StringClickHouse64CityHash64FarmHash64
Moscow1250790149629287863859927100784533574095992710078453357409
How can you write a big system without C++? -Paul Glick623794531165004562574929116295744250411716470977470720228
Voir aussi Introducing CityHash pour une description et les raisons de sa création. En bref : un hachage non cryptographique plus rapide que MurmurHash, mais plus complexe.

Implémentations

Go

Vous pouvez utiliser le paquet Go go-faster/city, qui implémente les deux variantes.
Dernière modification le 29 juin 2026