Перейти к основному содержанию
Эта страница не применима к ClickHouse Cloud. Описанная здесь возможность недоступна в сервисах ClickHouse Cloud. Дополнительные сведения см. в руководстве ClickHouse Cloud Compatibility.
В ClickHouse есть встроенная возможность для работы с геобазой. Это позволяет:
  • Использовать ID региона, чтобы получить его название на нужном языке.
  • Использовать ID региона, чтобы получить ID города, области, федерального округа, страны или континента.
  • Проверять, входит ли регион в состав другого региона.
  • Получать цепочку родительских регионов.
Все функции поддерживают “транслокальность” — возможность одновременно использовать разные представления о принадлежности регионов. Дополнительные сведения см. в разделе “Функции для работы со словарями веб-аналитики”. Внутренние словари в пакете по умолчанию отключены. Чтобы включить их, раскомментируйте параметры path_to_regions_hierarchy_file и path_to_regions_names_files в файле конфигурации сервера. Геобаза загружается из текстовых файлов. Поместите файлы regions_hierarchy*.txt в каталог path_to_regions_hierarchy_file. Этот параметр конфигурации должен содержать путь к файлу regions_hierarchy.txt (иерархии регионов по умолчанию), а остальные файлы (regions_hierarchy_ua.txt) должны находиться в том же каталоге. Поместите файлы regions_names_*.txt в каталог path_to_regions_names_files. Вы также можете создать эти файлы самостоятельно. Формат файлов следующий: regions_hierarchy*.txt: TabSeparated (без заголовка), столбцы:
  • ID региона (UInt32)
  • ID родительского региона (UInt32)
  • тип региона (UInt8): 1 - континент, 3 - страна, 4 - федеральный округ, 5 - регион, 6 - город; для остальных типов значения отсутствуют
  • население (UInt32) — необязательный столбец
regions_names_*.txt: TabSeparated (без заголовка), столбцы:
  • ID региона (UInt32)
  • название региона (String) — не может содержать символы табуляции или перевода строки, даже экранированные.
Для хранения в оперативной памяти используется плоский массив. По этой причине ID не должны превышать миллион. Словари можно обновлять без перезапуска сервера. Однако набор доступных словарей не обновляется. Для обновления проверяется время изменения файлов. Если файл изменился, словарь обновляется. Интервал проверки изменений настраивается параметром builtin_dictionaries_reload_interval. Обновления словарей (кроме загрузки при первом использовании) не блокируют запросы. Во время обновления запросы используют старые версии словарей. Если во время обновления возникает ошибка, она записывается в журнал сервера, а запросы продолжают использовать старые версии словарей. Мы рекомендуем периодически обновлять словари геобазы. Во время обновления создавайте новые файлы и записывайте их в отдельное место. Когда всё будет готово, переименуйте их в файлы, используемые сервером. Также есть функции для работы с идентификаторами ОС и поисковыми движками, но использовать их не следует.
Последнее изменение 10 июня 2026 г.