Подключение собственной геобазы

Managed Service for ClickHouse содержит встроенный словарь-геобазу и набор функций для работы с ним. Встроенный словарь позволяет:

  • получить имя региона на нужном языке по его идентификатору;
  • получить идентификатор города, области, федерального округа, страны, континента по идентификатору региона;
  • проверить, что один регион входит в другой;
  • получить цепочку родительских регионов.

Подробнее о функциях для работы с геобазой читайте в документации ClickHouse.

Если встроенная геобаза вам не подходит, вы можете подключить к кластеру ClickHouse собственную геобазу:

  1. Создайте ее.
  2. Загрузите в Облако.
  3. Подключите к кластеру ClickHouse.

Создать геобазу

Геобаза в ClickHouse — это текстовые файлы, которые содержат иерархию и имена регионов. Вы можете добавить в ClickHouse несколько альтернативных геобаз, чтобы можно было поддержать разные точки зрения о принадлежности регионов странам. Подробнее читайте в документации ClickHouse.

Чтобы создать геобазу:

  1. Создайте файл regions_hierarchy.txt с иерархией регионов. Файл должен представлять из себя таблицу в формате TSV без заголовков и со столбцами:
    • идентификатор региона (UInt32);
    • идентификатор родительского региона (UInt32);
    • тип региона (UInt8): 1 - континент, 3 - страна, 4 - федеральный округ, 5 - область, 6 - город; остальные типы не имеют значения;
    • население (UInt32) - необязательный столбец.
  2. Чтобы добавить альтернативную иерархию регионов, создайте файлы regions_hierarchy_<суффикс>.txt с аналогичной структурой. Чтобы воспользоваться альтернативной геобазой, передайте этот суффикс при вызове функции. Например:
    regionToCountry(RegionID) - использует словарь по умолчанию: regions_hierarchy.txt;
    regionToCountry(RegionID, 'ua') - использует словарь с суффиксом ua: regions_hierarchy_ua.txt;
    
  3. Создайте файл regions_names.txt с именами регионов. Файл должен представлять из себя таблицу в формате TSV без заголовков и со столбцами:
    • идентификатор региона (UInt32);
    • имя региона (String) - не может содержать табы или переводы строк, даже экранированные.
  4. Чтобы добавить в базу имена регионов на других языках, создайте файлы regions_names_<код языка>.txt с аналогичной структурой. Например, regions_names_en.txt для английского языка и regions_names_tr.txt для турецкого.
  5. Запакуйте файлы геобазы в архив формата tar, tar.gz или zip.

Загрузить геобазу в Облако

Managed Service for ClickHouse работает только с геобазами, которые загружены в Object Storage и к которым предоставлен публичный доступ на чтение:

  1. Загрузите архив с геобазой в Object Storage.

  2. Настройте публичный доступ на чтение к файлу геобазы.

  3. Получите публичную ссылку на геобазу.

Подключить геобазу

  1. Перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Выберите кластер и нажмите кнопку Изменить кластер на панели сверху.
  3. Нажмите кнопку Настроить в блоке Настройки СУБД.
  4. В поле Geobase uri — укажите публичную ссылку на архив с геобазой в Object Storage.