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