Подключение внешних словарей

Вы можете подключать к кластеру внешние словари и отключать их. Подробне о словарях читайте в документации ClickHouse.

Подключить словарь

  1. Выберите кластер:

    1. Перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
    2. Нажмите на имя нужного кластера, затем выберите вкладку Словари.
    3. Нажмите на кнопку Добавить словарь.
  2. Настройте параметры источника словаря:

    Managed Service for ClickHouse поддерживает несколько типов источников словарей: HTTP(s), PostgreSQL, MySQL, ClickHouse, MongoDB. Параметры подключения будут отличаться для разных типов источников.

    • URL — URL HTTP(s)-источника;
    • Формат файлаФормат файла для HTTP(s)-источника. Подробнее о форматах читайте в документации ClickHouse.
    • Реплики — список реплик MySQL, которые будут использоваться как источник словаря. Для реплик можно настроить собственные параметры подключения (порт, имя пользователя и пароль) или задать общие.
    • Хост — имя хоста источника. Хост должен находиться в той же сети, что и кластер ClickHouse.
    • Приоритет — приоритет реплики MySQL. При попытке соединения ClickHouse обходит реплики в соответствии с приоритетом. Чем меньше цифра, тем выше приоритет.
    • Порт — порт для подключения к источнику.
    • Пользователь — имя пользователя базы данных источника.
    • Пароль — пароль для доступа к базе данных источника.
    • База данных — имя базы данных источника.
    • Условие выбора — условие для выбора строк, из которых будет сформирован словарь. Например, условие выбора id=10 эквивалентно SQL-команде WHERE id=10. Параметр доступен для MySQL и ClickHouse.
    • Таблица — имя таблицы источника.
    • Коллекция — имя коллекции для MongoDB-источника.
    • Проверка статуса словаря — Необязательный параметр. SQL-запрос для проверки изменений словаря. ClickHouse будет обновлять словарь только при изменении результата выполнения этого запроса. Подробнее читайте в документации ClickHouse.
    • SSL mode — режим для установки защищенного SSL TCP/IP соединения с базой данных PostgreSQL. Подробнее читайте в документации PostgreSQL.

    Подробнее об источниках словарей и параметрах их подключения читайте в документации ClickHouse.

  3. Настройте структуру и способы размещения словаря в памяти:

    Managed Service for ClickHouse поддерживает несколько способов размещения словарей в памяти: flat, hashed, cache, range_hashed, complex_key_hashed, complex_key_cache. Подробнее о способах размещения словарей в памяти читайте в документации ClickHouse.

    Параметры будут отличаться для разных способов размещения в памяти:

    • Размер кэша — количество ячеек кэша для способов cache, complex_key_cache. Подробнее о кэше читайте в документации ClickHouse.
    • Числовой ключ — имя ключевого столбца словаря. Ключевой столбец должен иметь тип данных UInt64. Используется для способов flat, hashed, cache, range_hashed. Подробнее о ключах читайте в документации ClickHouse.
    • Составной ключ — столбцы, образующие составной ключ словаря. Укажите идентификаторы столбцов и их типы данных. Используется для способов complex_key_hashed, complex_key_cache. Подробнее о составных ключах читайте в документации ClickHouse.
    • Столбец начала диапазона и Столбец конца диапазона — столбцы, обозначающие начало и конец диапазона для способа range_hashed. Укажите идентификаторы столбцов и их типы данных. Подробнее о диапазонах читайте в документации ClickHouse.
    • Столбцы данных — список столбцов с данными словаря:
      • Имя — имя столбца.
      • Тип — тип данных столбца.
      • Значение по умолчанию — значение по умолчанию для пустого элемента. При загрузке словаря все пустые элементы будут заменены на это значение. Нельзя указать значение NULL. Необязательный параметр.
      • Выражениевыражение, которое ClickHouse выполняет со значением столбца. Необязательный параметр.
      • Иерархический — признак поддержки иерархии.
      • Инъективность — признак инъективности отображения id -> attribute.

    Подробнее о параметрах столбцов читайте в документации ClickHouse.

  4. Задайте периодичность обновления словаря:

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

    Подробнее об обновлении словарей читайте в документации ClickHouse.

Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы подключить внешний словарь к кластеру ClickHouse:

  1. Посмотрите описание команды CLI для добавления словарей:

    $ yc managed-clickhouse cluster add-external-dictionary --help
    
  2. Выполните команду добавления словаря. Пример команды для PostgreSQL словаря:

    $ yc managed-clickhouse cluster add-external-dictionary \
       --name <имя кластера ClickHouse> \
       --dict-name <имя словаря> \
       --structure-id <имя ключевого столбца> \
       --structure-attribute name=<имя столбца данных>,type=<тип данных>,null-value=<значение для пустого элемента>,expression=<выражение>,hierarchical=<true|false>,injective=<true|false> \
       --fixed-lifetime <период обновления в секундах> \
       --layout-type <flat|hashed|cache|range_hashed|complex_key_hashed|complex_key_cache> \
       --postgresql-source db=<имя БД источника>,table=<имя таблицы источника>,port=<порт для подключения>,user=<имя пользователя БД источника>,password=<пароль БД источника>,ssl-mode=<disable|allow|prefer|require|verify-ca|verify-full> \
       --postgresql-source-hosts <хосты БД источника> \
    

Подключить словарь можно с помощью метода createExternalDictionary.

Просмотреть список словарей

  1. Перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера, затем выберите вкладку Словари.

Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы подключить внешний словарь к кластеру ClickHouse:

  1. Посмотрите описание команды CLI для получения детальной информации о кластере:
$ yc managed-clickhouse cluster get --help
  1. Выполните команду:
$ yc managed-clickhouse cluster get <имя кластера>

Подключенные словари отображаются в блоке dictionaries: результата выполнения команды.

Просмотреть список словарей можно вместе с остальными параметрами кластера с помощью метода get.

Удалить словарь

  1. Перейдите на страницу каталога и нажмите плитку Managed Service for ClickHouse.
  2. Нажмите на имя нужного кластера и выберите вкладку Словари.
  3. Нажмите значок image в строке нужного хоста и выберите пункт Удалить.

Если у вас еще нет интерфейса командной строки Яндекс.Облака, установите и инициализируйте его.

По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

Чтобы удалить внешний словарь:

  1. Посмотрите описание команды CLI для удаления словаря:
$ yc managed-clickhouse cluster remove-external-dictionary --help
  1. Удалите словарь с помощью команды:
$ yc managed-clickhouse cluster remove-external-dictionary \
  --name <имя кластера> \
  --dict-name <имя словаря> \

Удалить словарь можно с помощью метода deleteExternalDictionary.