Cuando creas una versión nueva del esquema, el registro de esquemas verifica que la versión nueva sea compatible con las versiones anteriores. Aplicar la compatibilidad del esquema ayuda a garantizar que los productores y consumidores de datos sigan funcionando correctamente a medida que evoluciona la estructura de datos.
Los valores admitidos para el tipo de compatibilidad son Backward, Backward transitive, Forward, Forward transitive, Full, Full transitive o None.
El tipo de compatibilidad se administra como un objeto JSON. Por ejemplo:
{ "compatibility": "BACKWARD" }Si no se establece de forma explícita, el tipo de compatibilidad para un registro de esquemas se establece de forma predeterminada en Backward.
Si no se establece un tipo de compatibilidad en un tema, este hereda el valor del registro de esquemas.
Los parámetros de configuración establecidos a nivel del tema anulan los del registro de esquemas.
La actualización del tipo de compatibilidad solo afecta a las versiones nuevas del esquema registradas después de la actualización.
Para obtener más información sobre los tipos de compatibilidad, consulta Acerca del tipo de compatibilidad.
Roles y permisos obligatorios para actualizar el tipo de compatibilidad
Para obtener los permisos que necesitas
para actualizar el tipo de compatibilidad de un registro o tema de esquema,
pídele a tu administrador que te otorgue el rol de IAM
Editor del registro de esquemas de Kafka administrado (roles/managedkafka.schemaRegistryEditor)
en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para actualizar el tipo de compatibilidad de un registro de esquema o un tema. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para actualizar el tipo de compatibilidad de un registro de esquema o un tema:
-
Otorga el siguiente permiso en el recurso para el que deseas actualizar el tipo de compatibilidad:
managedkafka.config.update
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Actualiza el tipo de compatibilidad de un registro de esquemas
Console
Para actualizar el tipo de compatibilidad de todo el registro de esquemas, sigue estos pasos:
- En la consola Google Cloud , ve a la página Registros de esquemas.
Se muestra una lista de los registros de esquemas de tu proyecto.
- Haz clic en el nombre del registro de esquemas para el que deseas actualizar el tipo de compatibilidad.
Se abrirá la página Detalles del registro de esquemas.
- En la sección de detalles principal del registro, busca el parámetro de configuración Tipo de compatibilidad y haz clic en el ícono Editar junto a él.
Se abrirá la página Editar tipo de compatibilidad.
- En el menú desplegable Tipo de compatibilidad, selecciona el valor.
- Haz clic en Guardar.
gcloud
Para actualizar el tipo de compatibilidad de un registro de esquemas, usa el comando gcloud alpha managed-kafka schema-registries update.
gcloud alpha managed-kafka schema-registries update SCHEMA_REGISTRY_ID
--location=LOCATION
--compatibility=COMPATIBILITY_TYPE
SCHEMA_REGISTRY_ID: Es el ID del registro de esquemas que se actualizará.LOCATION: Es la región del registro de esquemas.COMPATIBILITY_TYPE: Es el nuevo tipo de compatibilidad. Los valores válidos incluyenBACKWARD,BACKWARD_TRANSITIVE,FORWARD,FORWARD_TRANSITIVE,FULL,FULL_TRANSITIVEoNONE.
Ejemplo: Actualiza el tipo de compatibilidad del registro de esquemas test-registry en la región us-central1 a FORWARD.
gcloud alpha managed-kafka schema-registries update test-registry
--location=us-central1
--compatibility=FORWARD
REST
Para actualizar el tipo de compatibilidad de un registro de esquemas, haz una solicitud PUT a la API de REST.
Primero, obtén un token de acceso:
gcloud auth application-default print-access-token
Luego, envía una solicitud PUT al extremo de configuración del registro:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/config
Reemplaza los siguientes parámetros de ruta:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud.LOCATION: Es la región en la que existe el registro de esquemas.SCHEMA_REGISTRY_ID: Es el ID del registro de esquemas.
Incluye el siguiente objeto JSON en el cuerpo de la solicitud:
{ "compatibility": "COMPATIBILITY_TYPE" }
Reemplaza COMPATIBILITY_TYPE por un valor válido, como NONE, BACKWARD, FORWARD o FULL.
Si la solicitud se completa correctamente, la API devuelve un código de estado 200 OK.
Actualiza el tipo de compatibilidad de un tema
Console
Para actualizar el tipo de compatibilidad de un tema específico, sigue estos pasos:
- En la consola Google Cloud , ve a la página Registros de esquemas.
- Haz clic en el nombre del registro de esquema que contiene el tema.
Se abrirá la página Detalles del registro de esquemas.
- En la tabla Sujetos en este registro de esquemas, haz clic en el nombre del sujeto.
- Busca el parámetro de configuración Tipo de compatibilidad del asunto y haz clic en el ícono Editar que aparece junto a él.
Se abrirá la página Editar tipo de compatibilidad.
- En el menú desplegable Tipo de compatibilidad, selecciona el valor. Si eliges un valor aquí, se anulará el parámetro de configuración a nivel del registro para este tema.
- Haz clic en Guardar.
gcloud
Para actualizar el tipo de compatibilidad de un tema, usa el comando gcloud alpha managed-kafka schema-registries subject update.
gcloud alpha managed-kafka schema-registries subject update SUBJECT_ID
--schema-registry=SCHEMA_REGISTRY_ID
--location=LOCATION
--compatibility=COMPATIBILITY_TYPE
SUBJECT_ID: Es el ID del asunto que se actualizará.SCHEMA_REGISTRY_ID: Es el ID del registro de esquema que contiene el tema.LOCATION: Es la región del registro de esquemas.COMPATIBILITY_TYPE: Es el nuevo tipo de compatibilidad. Los valores válidos incluyenBACKWARD,BACKWARD_TRANSITIVE,FORWARD,FORWARD_TRANSITIVE,FULL,FULL_TRANSITIVEoNONE.
Ejemplo: Actualiza el tipo de compatibilidad del tema test-subject en el registro de esquemas test-registry de la región us-central1 a FORWARD_TRANSITIVE.
gcloud alpha managed-kafka schema-registries subject update test-subject
--schema-registry=test-registry
--location=us-central1
--compatibility=FORWARD_TRANSITIVE
REST
Para actualizar el tipo de compatibilidad de un tema, haz una solicitud PUT a la API de REST.
Primero, obtén un token de acceso:
gcloud auth application-default print-access-token
Actualiza la compatibilidad para un tema en el contexto predeterminado:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/config/SUBJECT_ID
Actualiza la compatibilidad de un tema en un contexto específico:
PUT https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/SCHEMA_REGISTRY_ID/contexts/CONTEXT_ID/config/SUBJECT_ID
Reemplaza los siguientes parámetros de ruta:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud.LOCATION: Es la región en la que existe el registro de esquemas.SCHEMA_REGISTRY_ID: Es el ID del registro de esquemas.SUBJECT_ID: Es el ID del asunto.CONTEXT_ID: Es el ID del contexto (si corresponde).
Incluye el siguiente objeto JSON en el cuerpo de la solicitud:
{ "compatibility": "COMPATIBILITY_TYPE" }
Reemplaza COMPATIBILITY_TYPE por un valor válido, como FORWARD_TRANSITIVE.
Ejemplo: Establece la compatibilidad del asunto user_events en FORWARD_TRANSITIVE.
Solicitud para PUT https://managedkafka.googleapis.com/v1main/projects/test-project/locations/us-central1/schemaRegistries/test_registry/config/user_events
Con cuerpo:
{ "compatibility": "FORWARD_TRANSITIVE" }
Si la solicitud se completa correctamente, la API devuelve un código de estado 200 OK.
¿Qué sigue?
- Modo de actualización del esquema
- Crea un tema y registra esquemas
- Cómo ver los detalles de un registro de esquemas