Управление схемами формата данных в Managed Service for ClickHouse®
Managed Service for ClickHouse® позволяет вставлять (INSERT
) и выводить (SELECT
) данные в различных форматах. Большинство таких форматов — самоописываемые, то есть они уже содержат в себе схему формата данных, описывающую допустимые типы данных, их порядок и представление в этом формате. Это позволяет, например, сразу делать вставку из файла.
Примечание
Схема формата данных (format schema) описывает формат ввода или вывода данных, в то время как схема данных (data scheme) описывает структуру и устройство баз данных и таблиц ClickHouse®, которые хранят эти данные. Эти понятия не являются взаимозаменяемыми.
Форматы данных Cap'n Proto
Вы можете подключить к кластеру Managed Service for ClickHouse® одну или несколько таких схем формата и использовать их для ввода и вывода требуемых данных в соответствующих форматах.
Важно
Чтобы использовать подключенные схемы формата, вставку данных в Managed Service for ClickHouse® следует производить с помощью HTTP-интерфейса
Подробнее о форматах данных см. в документации ClickHouse®
Примеры работы с форматами Cap'n Proto и Protobuf при вставке данных в кластер приведены в разделе Добавление данных в кластер.
Перед подключением схемы формата данных
Managed Service for ClickHouse® работает только со схемами формата данных, которые загружены в Yandex Object Storage и к которым предоставлен доступ на чтение. Перед подключением схемы к кластеру:
-
Подготовьте файл со схемой формата (см. документацию Cap'n Proto
и Protobuf ). -
Для привязки сервисного аккаунта к кластеру убедитесь, что вашему аккаунту в Yandex Cloud назначена роль iam.serviceAccounts.user или выше.
-
Загрузите файл со схемой формата данных в Yandex Object Storage.
-
Подключите сервисный аккаунт к кластеру. С помощью сервисного аккаунта вы настроите доступ к файлу схемы.
-
Назначьте роль
storage.viewer
сервисному аккаунту. -
В ACL бакета добавьте разрешение
READ
сервисному аккаунту. -
Получите ссылку на файл схемы.
Создать схему формата данных
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Схемы формата данных.
- Нажмите кнопку Создать схему.
- В диалоговом окне Добавление схемы заполните форму, указав в поле URL полученную ранее ссылку на файл со схемой формата.
- Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы создать схему формата данных, выполните команду:
-
для формата Cap'n Proto:
yc managed-clickhouse format-schema create "<имя_схемы_формата>" \ --cluster-name="<имя_кластера>" \ --type="capnproto" \ --uri="<ссылка_на_файл_в_Object_Storage>"
-
для формата Protobuf:
yc managed-clickhouse format-schema create "<имя_схемы_формата>" \ --cluster-name="<имя_кластера>" \ --type="protobuf" \ --uri="<ссылка_на_файл_в_Object_Storage>"
Имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Добавьте к описанию кластера Managed Service for ClickHouse® блок
format_schema
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... format_schema { name = "<имя_схемы>" type = "<тип_схемы>" uri = "<ссылка_на_файл_схемы_формата_данных_в_Object_Storage>" } }
Где
type
— тип схемы:FORMAT_SCHEMA_TYPE_CAPNPROTO
илиFORMAT_SCHEMA_TYPE_PROTOBUF
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы создать схему формата данных, воспользуйтесь методом REST API create для ресурса FormatSchema или вызовом gRPC API FormatSchemaService/Create и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Идентификатор кластера можно получить со списком кластеров в каталоге. - Имя схемы формата в параметре
formatSchemaName
. - Тип схемы:
FORMAT_SCHEMA_TYPE_CAPNPROTO
илиFORMAT_SCHEMA_TYPE_PROTOBUF
в параметреtype
. - Ссылку на файл в Yandex Object Storage в параметре
uri
.
Изменить схему формата данных
Managed Service for ClickHouse® не отслеживает изменения в файле со схемой формата данных, который находится в бакете Yandex Object Storage.
Чтобы актуализировать содержимое схемы, которая уже подключена к кластеру:
- Загрузите файл с актуальной схемой формата данных в Yandex Object Storage.
- Получите ссылку на этот файл.
- Измените параметры схемы формата данных, подключенной к Managed Service for ClickHouse®, передав новую ссылку на файл со схемой формата.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Схемы формата данных.
- Выберите нужную схему, нажмите на значок
и выберите пункт Редактировать.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить ссылку на файл в объектном хранилище со схемой формата данных, выполнив команду:
yc managed-clickhouse format-schema update "<имя_схемы_данных>" \
--cluster-name="<имя_кластера>" \
--uri="<новая_ссылка_на_файл_в_Object_Storage>"
Имя схемы можно запросить со списком схем формата данных в кластере; имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Managed Service for ClickHouse® значение параметра
uri
в блокеformat_schema
:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... format_schema { name = "<имя_схемы>" type = "<тип_схемы>" uri = "<новая_ссылка_на_файл_схемы_в_Object_Storage>" } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
Подробнее см. в документации провайдера Terraform
.Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок
timeouts
, например:resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" { ... timeouts { create = "1h30m" # Полтора часа update = "2h" # 2 часа delete = "30m" # 30 минут } }
-
Чтобы изменить схему формата данных, воспользуйтесь методом REST API update для ресурса FormatSchema или вызовом gRPC API FormatSchemaService/Update и передайте в запросе:
-
Идентификатор кластера в параметре
clusterId
. Идентификатор кластера можно получить со списком кластеров в каталоге. -
Имя схемы формата в параметре
formatSchemaName
. Имя схемы можно запросить со списком схем формата данных в кластере. -
Новую ссылку на файл в Yandex Object Storage в параметре
uri
. -
Список полей конфигурации кластера, подлежащих изменению, в параметре
updateMask
.Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
updateMask
(одной строкой через запятую).
Отключить схему формата данных
Примечание
После отключения схемы формата данных соответствующий объект остается в бакете Yandex Object Storage. Если этот объект со схемой формата больше не нужен, его можно удалить.
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Схемы формата данных.
- Выберите нужную схему, нажмите на значок
и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы отключить схему формата данных, выполните команду:
yc managed-clickhouse format-schema delete "<имя_схемы_формата>" \
--cluster-name="<имя_кластера>"
Имя схемы можно запросить со списком схем формата данных в кластере; имя кластера можно запросить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Удалите из описания кластера Managed Service for ClickHouse® блок описания нужной схемы формата данных
format_schema
. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее см. в документации провайдера Terraform
Ограничения по времени
Провайдер Terraform ограничивает время на выполнение операций с кластером Managed Service for ClickHouse®:
- создание, в т. ч. путем восстановления из резервной копии, — 60 минут;
- изменение — 90 минут;
- удаление — 30 минут.
Операции, длящиеся дольше указанного времени, прерываются.
Как изменить эти ограничения?
Добавьте к описанию кластера блок timeouts
, например:
resource "yandex_mdb_clickhouse_cluster" "<имя_кластера>" {
...
timeouts {
create = "1h30m" # Полтора часа
update = "2h" # 2 часа
delete = "30m" # 30 минут
}
}
Чтобы удалить схему формата данных, воспользуйтесь методом REST API delete для ресурса FormatSchema или вызовом gRPC API FormatSchemaService/Delete и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Идентификатор кластера можно получить со списком кластеров в каталоге. - Имя схемы формата в параметре
formatSchemaName
. Имя схемы можно запросить со списком схем формата данных в кластере.
Получить список схем формата данных в кластере
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и выберите вкладку Схемы формата данных.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список схем формата данных в кластере, выполните команду:
yc managed-clickhouse format-schema list --cluster-name="<имя_кластера>"
Имя кластера можно запросить со списком кластеров в каталоге.
Чтобы получить список схем формата данных, воспользуйтесь методом REST API list для ресурса FormatSchema или вызовом gRPC API FormatSchemaService/List и передайте в запросе идентификатор кластера в параметре clusterId
.
Идентификатор кластера можно получить со списком кластеров в каталоге.
Получить детальную информацию о схеме формата данных
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить детальную информацию о схеме формата данных, выполните команду:
yc managed-clickhouse format-schema get "<имя_схемы_формата>" \
--cluster-name="<имя_кластера>"
Имя схемы можно запросить со списком схем формата данных в кластере; имя кластера можно запросить со списком кластеров в каталоге.
Чтобы получить детальную информацию о схеме формата данных, воспользуйтесь методом REST API get для ресурса FormatSchema или вызовом gRPC API FormatSchemaService/Get и передайте в запросе:
- Идентификатор кластера в параметре
clusterId
. Идентификатор кластера можно получить со списком кластеров в каталоге. - Имя схемы формата в параметре
formatSchemaName
. Имя схемы можно запросить со списком схем формата данных в кластере.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc