Pular para o conteúdo principal
O ClickHouse usa uma das versões anteriores do CityHash do Google.
O algoritmo do CityHash foi alterado depois que o incorporamos ao ClickHouse.A documentação do CityHash afirma explicitamente que o usuário não deve confiar em valores hash específicos e não deve armazená-los em nenhum lugar nem usá-los como chave de sharding.Mas, como disponibilizamos essa função ao usuário, tivemos que fixar a versão do CityHash (na 1.0.2). E agora garantimos que o comportamento das funções CityHash disponíveis em SQL não mudará.— Alexey Milovidov
NotaA versão atual do CityHash do Google difere da variante cityHash64 do ClickHouse.Não use farmHash64 para obter o valor do CityHash do Google! O FarmHash é o sucessor do CityHash, mas eles não são totalmente compatíveis.
StringClickHouse64CityHash64FarmHash64
Moscow1250790149629287863859927100784533574095992710078453357409
How can you write a big system without C++? -Paul Glick623794531165004562574929116295744250411716470977470720228
Veja também Introducing CityHash para uma descrição e a motivação por trás da sua criação. Em resumo: um hash não criptográfico mais rápido que MurmurHash, mas mais complexo.

Implementações

Go

Você pode usar o pacote Go go-faster/city, que implementa as duas variantes.
Última modificação em 10 de junho de 2026