Начало работы со Schema Registry
Статья создана
Обновлена 6 марта 2025 г.
Управляйте версиями схем со Schema Registry.
Примечание
Функциональность находится на стадии Preview.
Создайте пространство имен
Консоль управления
- В консоли управления
выберите каталог, в котором нужно создать подключение. - Выберите сервис Yandex MetaData Hub.
- Hа панели слева выберите
Schema Registry. - Нажмите кнопку Создать пространство имён.
- В поле Имя задайте уникальное имя пространства имен.
- (Опционально) Добавьте описание пространства имен.
- В блоке Параметры совместимости:
- Задайте Уровень проверки совместимости
BACKWARD
: (значение по умолчанию) потребители, использующие новую схему, могут читать данные, написанные производителями с использованием последней зарегистрированной схемы;BACKWARD_TRANSITIVE
: потребители, использующие новую схему, могут читать данные, записанные производителями с использованием всех ранее зарегистрированных схем;FORWARD
: потребители, использующие последнюю зарегистрированную схему, могут читать данные, написанные производителями, использующими новую схему;FORWARD_TRANSITIVE
: потребители, использующие все ранее зарегистрированные схемы, могут читать данные, написанные производителями с использованием новой схемы;FULL
: новая схема совместима вперед и назад с последней зарегистрированной схемой;FULL_TRANSITIVE
: новая схема совместима вперед и назад со всеми ранее зарегистрированными схемами;NONE
: проверки совместимости схемы отключены.
Подробнее о типах совместимости схем см. в документации Confluent .
- Выберите политику проверки совместимости для JSON-схем:
optional-friendly
— основывается на решении с использованием разных контентных моделей для производителя и потребителя. Поддерживает добавление и удаление опциональных параметров с сохранением полной транзитивной совместимости.Confluent
— основывается на стандартах Confluent Schema Registry и не обеспечивает полную совместимость при добавлении и удалении опциональных параметров.
- Выберите политику проверки совместимости для Protobuf-схем:
- Confluent — основывается на стандартах Confluent Schema Registry
. - buf — основывается на стандартах Buf
.
- Confluent — основывается на стандартах Confluent Schema Registry
- Задайте Уровень проверки совместимости
- Нажмите кнопку Создать.
Загрузите схему в субъект
Консоль управления
API
- На панели слева выберите
Схемы. - Нажмите кнопку Загрузить схему.
- Выберите способ загрузки схемы в новый субъект и укажите следующие параметры:
- Имя — уникальное имя субъекта;
- Опционально добавьте Уровень проверки совместимости, если необходимо изменить уровень, наследуемый от пространства имен:
BACKWARD
: (значение по умолчанию) потребители, использующие новую схему, могут читать данные, написанные производителями с использованием последней зарегистрированной схемы;BACKWARD_TRANSITIVE
: потребители, использующие новую схему, могут читать данные, записанные производителями с использованием всех ранее зарегистрированных схем;FORWARD
: потребители, использующие последнюю зарегистрированную схему, могут читать данные, написанные производителями, использующими новую схему;FORWARD_TRANSITIVE
: потребители, использующие все ранее зарегистрированные схемы, могут читать данные, написанные производителями с использованием новой схемы;FULL
: новая схема совместима вперед и назад с последней зарегистрированной схемой;FULL_TRANSITIVE
: новая схема совместима вперед и назад со всеми ранее зарегистрированными схемами;NONE
: проверки совместимости схемы отключены.
Подробнее о типах совместимости схем см. в документации Confluent .
- Задайте формат данных Protobuf
, Avro или JSON Schema и прикрепите файл. - Если схема ссылается на другую схему, то в разделе Референсы нажмите
и введите имя референса, имя субъекта, под которым зарегистрирована схема для ссылки, и версию схемы зарегистрированного субъекта. - Чтобы применить нормализацию схемы данных
, включите настройку Нормализация. - Если вы хотите пропустить проверку совместимости схем, включите соответствующую настройку.
- Нажмите кнопку Загрузить схему.
-
Установите cURL
. -
Авторизуйтесь для выполнения операций в API.
-
В настройках созданного пространства имен скопируйте его идентификатор.
-
Воспользуйтесь методом API POST, чтобы загрузить и зарегистрировать схему для субъекта. Передайте в запросе:
schemaType
— формат данных: PROTOBUF , AVRO или JSON . Если параметрschemaType
не указан, по умолчанию используетсяAVRO
.schema.type
— тип данных. Например,record
.schema.name
— имя схемы, которая будет загружена в субъект.schema.fields
— поля схемы. Пример:[{\"name\": \"age\", \"type\": \"int\"}]
.- Идентификатор пространства имен.
- Имя субъекта, в который будет загружена схема.
Формат запроса:
curl \ --request POST \ --header "accept: application/json" \ --header "Authorization: <токен>" \ --header "Content-Type: application/json" \ --data '{ "schemaType": "<формат данных>", "schema": '{ \"type\": \"<тип данных>\", \"name\": \"<имя_схемы>\", \"fields\":[поля_схемы]} }' \ https://<идентификатор_пространства_имен>.schema-registry.yandexcloud.net/subjects/<имя_субъекта>/versions
В ответ на успешный запрос придет уникальный идентификатор схемы. Пример:
{"id":1}
.Примеры запросов см. в документации Confluent
.
Что дальше
После создания пространства имен и регистрации схемы: