Перейти к основному содержанию
ClickHouse использует одну из более ранних версий CityHash от Google.
Алгоритм CityHash изменился уже после того, как мы добавили его в ClickHouse.В документации CityHash прямо указано, что пользователю не следует полагаться на конкретные хеш-значения, не следует их где-либо сохранять и использовать в качестве ключа сегментирования.Но поскольку мы сделали эту функцию доступной пользователям, нам пришлось зафиксировать версию CityHash (1.0.2). И теперь мы гарантируем, что поведение функций CityHash, доступных в SQL, не изменится.— Alexey Milovidov
ПримечаниеТекущая версия CityHash от Google отличается от варианта ClickHouse cityHash64.Не используйте farmHash64, чтобы получить значение CityHash от Google! FarmHash — преемник CityHash, но они не полностью совместимы.
StringClickHouse64CityHash64FarmHash64
Moscow1250790149629287863859927100784533574095992710078453357409
How can you write a big system without C++? -Paul Glick623794531165004562574929116295744250411716470977470720228
См. также Introducing CityHash с описанием и причинами его создания. Кратко: некриптографический хеш, который быстрее MurmurHash, но сложнее по устройству.

Реализации

Go

Вы можете использовать Go-пакет go-faster/city, который поддерживает оба варианта.
Последнее изменение 10 июня 2026 г.