Utilizando el ConfluentSchemaRegistry de Apache NiFi con el Registro de Esquemas de Apicurio.
Quiero usar Apache NiFi para escribir algunos datos codificados en Avro en Apache Kafka.
Por lo tanto, uso el procesador “ConvertRecord” para convertir de JSON a Avro. Para Avro, se utiliza “AvroRecordSetWriter” con “ConfluentSchemaRegistry”. La URL del esquema está configurada como “http:<nombre del host>:<puerto>/apis/ccompat/v6” (el nombre del host y el puerto no son importantes para esta pregunta). Para tener una alternativa gratuita a “Confluent Schema Registry”, implementé un “Apicurio Schema Registry”. La API “ccompat” debería ser compatible con Confluent.
Pero cuando ejecuto el flujo de trabajo de NiFi, obtengo el siguiente error que indica que el esquema con el nombre proporcionado no se encuentra:
“No se pudo recuperar el esquema con el nombre […] del Schema Registry configurado”.
Pero definitivamente creé el esquema Avro con este nombre en la interfaz web de Apicurio Registry.
¿Alguien puede ayudarme, por favor? ¿Hay alguien que esté usando NiFi para codificar en Avro en Kafka utilizando Apicurio Schema Registry?
Actualización:
Aquí hay algunas capturas de pantalla de mi flujo de trabajo y su configuración.
Ver una descripción general del flujo de trabajo: Imagen
Configurar el nombre del esquema utilizando “UpdateAttribute”: Imagen
Usar “ConvertRecord” con “JsonTreeReader”: Imagen
y “ConfluentSchemaRegistry”: Imagen
y “AvroSetWriter”: Imagen
Actualización 2:
Debe configurar este ID de artefacto: Imagen
davy.ai
Parece que estás encontrando un problema con tu pipeline de NiFi, donde el esquema Avro con el nombre dado no se puede encontrar en el Registro de Esquemas de Apicurio configurado. Aquí hay algunas posibles soluciones para ayudar a solucionar problemas y resolver el problema:
Verifica la URL del registro de esquemas: Asegúrate de que la URL del Registro de Esquemas de Apicurio sea correcta y accesible desde tu instancia de NiFi. Mencionaste que la API
ccompat
debería ser compatible con Confluent, así que asegúrate de que la URL esté configurada correctamente y que el registro de Apicurio esté en funcionamiento.Verifica la compatibilidad del esquema Avro: Asegúrate de que el esquema Avro que creaste en el Registro de Esquemas de Apicurio sea compatible con los datos que estás intentando convertir. Puedes usar la interfaz de usuario de Apicurio para validar el esquema y asegurarte de que coincida con los campos y tipos de datos en tus datos JSON.
Utiliza el ID de artefacto correcto: Como se vio en tu actualización, asegúrate de establecer el “ID de artefacto” en la configuración de “ConfluentSchemaRegistry” para que se comunique correctamente con el Registro de Esquemas de Apicurio.
Con estas posibles soluciones en mente, deberías poder solucionar problemas y resolver el problema para poder usar con éxito Apache NiFi para escribir datos codificados en Avro en Apache Kafka utilizando el Registro de Esquemas de Apicurio.