Подключение собственной геобазы
Managed Service for ClickHouse содержит встроенный словарь-геобазу и набор функций для работы с ним. Встроенный словарь позволяет:
- получить имя региона на нужном языке по его идентификатору;
- получить идентификатор города, области, федерального округа, страны, континента по идентификатору региона;
- проверить, что один регион входит в другой;
- получить цепочку родительских регионов.
Подробнее о функциях для работы с геобазой читайте в документации ClickHouse.
Если встроенная геобаза вам не подходит, вы можете подключить к кластеру ClickHouse собственную геобазу:
Создать геобазу
Геобаза в ClickHouse — это текстовые файлы, которые содержат иерархию и имена регионов. Вы можете добавить в ClickHouse несколько альтернативных геобаз, чтобы можно было поддержать разные точки зрения о принадлежности регионов странам. Подробнее читайте в документации ClickHouse.
Чтобы создать геобазу:
- Создайте файл
regions_hierarchy.txt
с иерархией регионов. Файл должен представлять из себя таблицу в формате TSV без заголовков и со столбцами:- идентификатор региона (UInt32);
- идентификатор родительского региона (UInt32);
- тип региона (UInt8): 1 - континент, 3 - страна, 4 - федеральный округ, 5 - область, 6 - город; остальные типы не имеют значения;
- население (UInt32) - необязательный столбец.
- Чтобы добавить альтернативную иерархию регионов, создайте файлы
regions_hierarchy_<суффикс>.txt
с аналогичной структурой. Чтобы воспользоваться альтернативной геобазой, передайте этот суффикс при вызове функции. Например:regionToCountry(RegionID) - использует словарь по умолчанию: regions_hierarchy.txt; regionToCountry(RegionID, 'ua') - использует словарь с суффиксом ua: regions_hierarchy_ua.txt;
- Создайте файл
regions_names.txt
с именами регионов. Файл должен представлять из себя таблицу в формате TSV без заголовков и со столбцами:- идентификатор региона (UInt32);
- имя региона (String) - не может содержать табы или переводы строк, даже экранированные.
- Чтобы добавить в базу имена регионов на других языках, создайте файлы
regions_names_<код языка>.txt
с аналогичной структурой. Например,regions_names_en.txt
для английского языка иregions_names_tr.txt
для турецкого. - Запакуйте файлы геобазы в архив формата
tar
,tar.gz
илиzip
.
Загрузить геобазу в Yandex.Cloud
Managed Service for ClickHouse работает только с геобазами, которые загружены в Object Storage и к которым предоставлен публичный доступ на чтение:
-
Загрузите архив с геобазой в Object Storage.
-
Настройте публичный доступ на чтение к файлу геобазы.
-
Получите публичную ссылку на геобазу.
Подключить геобазу
- Перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
- Выберите кластер и нажмите кнопку Изменить кластер на панели сверху.
- Нажмите кнопку Настроить в блоке Настройки СУБД.
- В поле Geobase uri — укажите публичную ссылку на архив с геобазой в Object Storage.