Uso del registro de esquemas
Schema Registry proporciona un repositorio compartido de esquemas que permite que las aplicaciones interactúen de forma flexible entre sí.
Las aplicaciones creadas a menudo necesitan una forma de compartir metadatos en tres dimensiones:
-
Formato de Datos
-
Esquema
-
Semántica o significado de los datos
El valor que proporciona el registro de esquema y las aplicaciones que se integran con él son los siguientes:
-
Registro centralizado: proporcione un esquema reutilizable para evitar adjuntar el esquema a cada dato
-
Gestión de versiones: defina la relación entre las versiones de esquema para que los consumidores y los productores puedan evolucionar a distintas tarifas
-
Validación de esquema: active la conversión de formato genérico, el enrutamiento genérico y la calidad de los datos
¿Por qué utilizar el registro de esquemas?
Debido a la naturaleza disociada de Kafka, los productores y consumidores no se comunican directamente. En su lugar, la transferencia de información se realiza a través del tema de Kafka. Al mismo tiempo, el consumidor todavía necesita saber el tipo de datos que el productor está enviando para deserializarlo. Si el productor comienza a enviar datos incorrectos a Kafka o si el tipo de datos cambia, los consumidores descendentes comienzan a romperse. Debe haber una forma de tener un tipo de dato común que se haya acordado.
Ahí es donde entra en juego el registro de esquemas. El registro de esquemas es una aplicación que reside fuera del cluster de Kafka y gestiona la distribución de esquemas al productor y consumidor almacenando una copia del esquema en su caché local.
Casos de uso
Schema Registry proporciona un juego de API de Rest (con interfaces web) para que el esquema esté disponible de forma centralizada para las aplicaciones cliente. Los casos de uso comunes son:
- Registro y consulta de un esquema para un tema de Kafka
Cuando Kafka está integrado en despliegues de organizaciones empresariales, normalmente tiene muchos temas de Kafka diferentes que utilizan diferentes aplicaciones y usuarios.
- Lectura/deserialización y escritura/serialización de datos desde y hacia un tema de Kafka
Además de almacenar metadatos de esquema, otro caso de uso clave es almacenar metadatos para el formato de cómo se leen los datos y cómo se escriben. Schema Registry soporta este caso de uso proporcionando capacidades para almacenar archivos JAR para serializadores y deserializadores y, a continuación, asignando los serdares al esquema.
- Gestión de flujos de datos con enrutamiento basado en esquemas
Si utiliza NiFi para mover diferentes tipos de eventos
syslog
a sistemas descendentes, hay requisitos de movimiento de datos en los que debe analizar el eventosyslog
para extraer el tipo de evento y enrutar el evento a un determinado sistema descendente (diferentes temas de Kafka, por ejemplo) en función del tipo de evento. -
La evolución dinámica del esquema permite que el esquema evolucione en un período de tiempo.
Cualquier actualización del esquema crea una nueva revisión que se comunica a los consumidores.
- La aplicación/validación de esquemas desde el lado del consumidor se puede lograr sin problemas para la calidad de los datos.
Inicio del productor/consumidor de Kafka con el cliente Java
Adición de un registro de esquema Apache a clusters de ODH
Puede agregar el registro de esquema de Apache a los clusters de Big Data Service mediante Ambari
El registro de esquema no está instalado por defecto en un cluster de Big Data Service. El registro de esquemas soporta dos tipos de almacenamientos para almacenar metadatos de esquema.
- Mysql: valor que se debe definir: mysql
- En Memoria: Valor que se va a definir: inmemory
Para definir el tipo de almacenamiento adecuado, defina el parámetro Storage Type
en la sección Schema-registry avanzada de la interfaz de usuario de Ambari.
Para definir Mysql como tipo de almacenamiento, se deben crear varias tablas antes de iniciar el servidor. Esto se realiza automáticamente cuando el parámetro Storage Type
se define en mysql.
El parámetro
MySql Passowrd
es obligatorio al instalar el servicio de registro de esquema. Esta contraseña se utiliza para acceder a la información de esquema almacenada en las tablas de Mysql.Para los clusters de Big Data Service 3.0.28 o anteriores, MySql Passowrd
se debe restablecer manualmente desde el nodo un0 ejecutando el comando:
sudo update_mysql_password registry <password>
Proporcione esta contraseña durante la instalación del servicio Schema Registry.