Перейти к основному содержимому
Перейти к основному содержимому

Названные коллекции

Not supported in ClickHouse Cloud

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

Названные коллекции могут настраиваться с помощью DDL или в конфигурационных файлах и применяются при запуске ClickHouse. Они упрощают создание объектов и скрытие учетных данных от пользователей без административного доступа.

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

Параметры, заданные в названии коллекции, могут быть переопределены в SQL, как показано в примерах ниже. Эта возможность может быть ограничена с помощью ключевых слов [NOT] OVERRIDABLE и XML-атрибутов и/или параметра конфигурации allow_named_collection_override_by_default.

осторожно

Если переопределение разрешено, пользователи без административного доступа могут попытаться выяснить учетные данные, которые вы пытаетесь скрыть. Если вы используете названные коллекции с этой целью, следует отключить allow_named_collection_override_by_default (который включен по умолчанию).

Хранение названных коллекций в системной базе данных

Пример DDL

В приведенном выше примере:

  • key_1 всегда может быть переопределен.
  • key_2 никогда не может быть переопределен.
  • url может быть переопределен или нет в зависимости от значения allow_named_collection_override_by_default.

Права на создание названных коллекций с помощью DDL

Чтобы управлять названными коллекциями с помощью DDL, пользователь должен иметь привилегию named_control_collection. Это можно назначить, добавив файл в /etc/clickhouse-server/users.d/. В примере пользователю default присваиваются привилегии access_management и named_collection_control:

подсказка

В приведенном выше примере значение password_sha256_hex является шестнадцатеричным представлением хеша SHA256 пароля. Эта конфигурация для пользователя default имеет атрибут replace=true, так как в стандартной конфигурации установлен незашифрованный password, и невозможно установить как незашифрованный, так и sha256 hex пароли для пользователя.

Хранение названных коллекций

Названные коллекции могут храниться либо на локальном диске, либо в ZooKeeper/Keeper. По умолчанию используется локальное хранилище. Также они могут храниться с использованием шифрования с теми же алгоритмами, которые используются для шифрования дисков, где по умолчанию используется aes_128_ctr.

Чтобы настроить хранилище названных коллекций, необходимо указать type. Это может быть либо local, либо keeper/zookeeper. Для зашифрованного хранилища можно использовать local_encrypted или keeper_encrypted/zookeeper_encrypted.

Для использования ZooKeeper/Keeper также необходимо настроить path (путь в ZooKeeper/Keeper, где будут храниться названные коллекции) в разделе named_collections_storage файла конфигурации. Следующий пример использует шифрование и ZooKeeper/Keeper:

Необязательный параметр конфигурации update_timeout_ms по умолчанию равен 5000.

Хранение названных коллекций в конфигурационных файлах

Пример XML

В приведенном выше примере:

  • key_1 всегда может быть переопределен.
  • key_2 никогда не может быть переопределен.
  • url может быть переопределен или нет в зависимости от значения allow_named_collection_override_by_default.

Изменение названных коллекций

Названные коллекции, созданные с помощью DDL-запросов, могут быть изменены или удалены с помощью DDL. Названные коллекции, созданные с помощью XML-файлов, могут управляться путем редактирования или удаления соответствующего XML.

Изменение названной коллекции DDL

Измените или добавьте ключи key1 и key3 коллекции collection2 (это не изменит значение флага overridable для этих ключей):

Измените или добавьте ключ key1 и разрешите его всегда переопределять:

Удалите ключ key2 из collection2:

Измените или добавьте ключ key1 и удалите ключ key3 коллекции collection2:

Чтобы заставить ключ использовать настройки по умолчанию для флага overridable, вы должны удалить и снова добавить ключ.

Удаление названной коллекции DDL collection2:

Названные коллекции для доступа к S3

Описание параметров см. в s3 Table Function.

Пример DDL

Пример XML

Функция s3() и Примеры таблицы S3 с именованной коллекцией

Оба следующих примера используют одну и ту же названную коллекцию s3_mydata:

Функция s3()

подсказка

Первый аргумент функции s3() выше - это имя коллекции, s3_mydata. Без названных коллекций идентификатор ключа доступа, секрет, формат и URL должны были бы передаваться в каждом вызове функции s3().

Таблица S3

Названные коллекции для доступа к базе данных MySQL

Описание параметров см. в mysql.

Пример DDL

Пример XML

Примеры функции mysql(), таблицы MySQL, базы данных MySQL и названной коллекции справочников

Четыре следующих примера используют одну и ту же названную коллекцию mymysql:

Функция mysql()

примечание

Названная коллекция не указывает параметр table, поэтому он указывается в вызове функции как table = 'test'.

Таблица MySQL

примечание

DDL переопределяет настройку названной коллекции для connection_pool_size.

База данных MySQL

Справочник MySQL

Названные коллекции для доступа к базе данных PostgreSQL

Описание параметров см. в postgresql. В дополнение есть следующие псевдонимы:

  • username для user
  • db для database.

Параметр addresses_expr используется в коллекции вместо host:port. Параметр является необязательным, потому что есть другие необязательные: host, hostname, port. Следующий псевдокод объясняет приоритет:

Пример создания:

Пример конфигурации:

Пример использования названных коллекций с функцией postgresql

Пример использования названных коллекций с базой данных с движком PostgreSQL

примечание

PostgreSQL копирует данные из названной коллекции при создании таблицы. Изменение в коллекции не влияет на существующие таблицы.

Пример использования названных коллекций с базой данных с движком PostgreSQL

Пример использования названных коллекций со справочником с источником POSTGRESQL

Названные коллекции для доступа к удаленной базе данных ClickHouse

Описание параметров см. в remote.

Пример конфигурации:

secure не требуется для подключения из-за remoteSecure, но его можно использовать для справочников.

Пример использования названных коллекций с функциями remote/remoteSecure

Пример использования названных коллекций со справочником с источником ClickHouse

Названные коллекции для доступа к Kafka

Описание параметров см. в Kafka.

Пример DDL

Пример XML

Пример использования названных коллекций с таблицей Kafka

Оба следующих примера используют одну и ту же названную коллекцию my_kafka_cluster:

Названные коллекции для резервного копирования

Для описания параметров см. Резервное копирование и восстановление.

Пример DDL

Пример XML