Перейти к основному содержанию
Чтобы приведенные ниже функции работали, в конфигурации сервера должны быть указаны пути и адреса для получения всех встроенных словарей. Словари загружаются при первом вызове любой из этих функций. Если словари не удается загрузить, будет сгенерировано исключение.Поэтому примеры, приведенные в этом разделе, по умолчанию сгенерируют исключение в ClickHouse Fiddle, а также в развертываниях quick release и production, если их предварительно не настроить.
Сведения о создании словарей см. в разделе “Словари”.

Несколько геобаз

ClickHouse поддерживает одновременную работу с несколькими альтернативными геобазами (региональными иерархиями), чтобы учитывать различные точки зрения на принадлежность тех или иных регионов к странам. В конфигурации ‘clickhouse-server’ указывается файл с региональной иерархией: <path_to_regions_hierarchy_file>/opt/geo/regions_hierarchy.txt</path_to_regions_hierarchy_file> Помимо этого файла, также выполняется поиск расположенных рядом файлов, в имени которых есть символ _ и любой суффикс, добавленный к имени (перед расширением файла). Например, если файл /opt/geo/regions_hierarchy_ua.txt существует, он тоже будет найден. Здесь ua называется ключом словаря. Для словаря без суффикса ключом является пустая строка. Все словари перезагружаются во время работы (через определённое число секунд, как задано параметром конфигурации builtin_dictionaries_reload_interval, или раз в час по умолчанию). Однако список доступных словарей определяется только один раз — при запуске сервера. Все функции для работы с регионами имеют необязательный аргумент в конце — ключ словаря. Он называется геобазой. Пример:

regionToName

Принимает идентификатор региона и геобазу и возвращает строку с названием региона на соответствующем языке. Если региона с указанным идентификатором не существует, возвращается пустая строка. Синтаксис
Параметры Возвращаемое значение
  • Название региона на языке, соответствующем значению geobase. String.
  • В противном случае — пустая строка.
Пример
Query
Response

regionToCity

Принимает идентификатор региона из геобазы. Если этот регион является городом или частью города, возвращает идентификатор соответствующего города. В противном случае возвращает 0. Синтаксис
Параметры
  • id — идентификатор региона из геобазы. UInt32.
  • geobase — ключ словаря. См. раздел Несколько геобаз. String. Необязательный параметр.
Возвращаемое значение
  • идентификатор региона для соответствующего города, если он существует. UInt32.
  • 0, если такого региона нет.
Пример
Query
Response

regionToArea

Преобразует регион в область (тип 5 в геобазе). Во всех остальных отношениях эта функция совпадает с ‘regionToCity’. Синтаксис
Параметры Возвращаемое значение
  • Идентификатор региона для соответствующей области, если такой существует. UInt32.
  • 0, если такого нет.
Пример
Query
Response

regionToDistrict

Преобразует регион в федеральный округ (тип 4 в геобазе). Во всём остальном эта функция аналогична ‘regionToCity’. Синтаксис
Параметры Возвращаемое значение
  • Идентификатор региона для соответствующего города, если он существует. UInt32.
  • 0, если такого региона нет.
Пример
Query
Response

regionToCountry

Преобразует регион в страну (тип 3 в геобазе). Во всём остальном эта функция аналогична ‘regionToCity’. Синтаксис
Параметры Возвращаемое значение
  • Идентификатор региона для соответствующей страны, если такой существует. UInt32.
  • 0, если такого нет.
Пример
Query
Response

regionToContinent

Преобразует регион в континент (тип 1 в геобазе). Во всех остальных отношениях эта функция совпадает с ‘regionToCity’. Синтаксис
Параметры Возвращаемое значение
  • Идентификатор региона для соответствующего континента, если он существует. UInt32.
  • 0, если такого континента нет.
Пример
Query
Response

regionToTopContinent

Возвращает континент верхнего уровня в иерархии для региона. Синтаксис
Параметры Возвращаемое значение
  • Идентификатор континента верхнего уровня (последнего при подъеме по иерархии регионов). UInt32.
  • 0, если такого нет.
Пример
Query
Response

regionToPopulation

Возвращает численность населения региона. Численность населения может быть указана в файлах геобазы. См. раздел “Словари”. Если для региона численность населения не указана, возвращается 0. В геобазе численность населения может быть указана для дочерних регионов, но не для родительских. Синтаксис
Параметры Возвращаемое значение
  • Численность населения региона. UInt32.
  • 0, если данные отсутствуют.
Пример
Query
Response

regionIn

Проверяет, входит ли регион lhs в регион rhs. Возвращает число типа UInt8: 1, если входит, и 0, если не входит. Синтаксис
Параметры
  • lhs — идентификатор региона lhs из геобазы. UInt32.
  • rhs — идентификатор региона rhs из геобазы. UInt32.
  • geobase — ключ словаря. См. Несколько геобаз. String. Необязательный параметр.
Возвращаемое значение
  • 1, если принадлежит. UInt8.
  • 0, если не принадлежит.
Подробности реализации Отношение рефлексивно — любой регион также принадлежит самому себе. Пример
Query
Response

regionHierarchy

Принимает число типа UInt32 — идентификатор региона из геобазы. Возвращает массив идентификаторов регионов, состоящий из переданного региона и всех вышестоящих регионов по цепочке. Синтаксис
Параметры Возвращаемое значение
  • Массив идентификаторов регионов, включающий переданный регион и всех его родителей по цепочке. Array(UInt32).
Пример
Query
Response
Последнее изменение 2 июля 2026 г.