Skip to main content
ClickHouse uses one of the previous versions of CityHash from Google.
CityHash has changed the algorithm after we have added it into ClickHouse.CityHash documentation specifically notes that the user shouldn’t rely on specific hash values and shouldn’t save it anywhere or use it as a sharding key.But as we exposed this function to the user, we had to fix the version of CityHash (to 1.0.2). And now we guarantee that the behaviour of CityHash functions available in SQL won’t change.— Alexey Milovidov
NoteCurrent version of Google’s CityHash differs from ClickHouse cityHash64 variant.Don’t use farmHash64 to get Google’s CityHash value! FarmHash is a successor to CityHash, but they’re not fully compatible.
Also see Introducing CityHash for description and reasoning behind creation. TL;DR non-cryptographic hash that is faster than MurmurHash, but more complex.

Implementations

Go

You can use go-faster/city Go package that implements both variants.
Last modified on June 19, 2026