Есть multiple ways
, которые мы можем настроить Устройство чтения / записи записей Служба контроллера
Я попытаюсь объяснить следующие две Стратегия доступа к схеме
- Использовать свойство «Имя схемы»
- Использовать свойство «Текст схемы»
Использовать свойство SchemaText:
В этой стратегии доступа процессор будет искать атрибут avro.schema
в атрибутах VariableRegistry / FlowfileAttributes (или), которые мы можем дать schema in the property value
.
Пример:
Я указал значение свойства текста схемы в качестве моей авро-схемы ![enter image description here](https://i.stack.imgur.com/c8WPq.png)
Использовать свойство «Имя схемы»:
![enter image description here](https://i.stack.imgur.com/jpQX0.png)
В этой стратегии процессор проверяет Schema Name
значение свойства ${valor.vaengine}
(это имя атрибута), поэтому нам нужно иметь значение для этого атрибута с потоком.
Тогда служба контроллера использует ${valor.vaengine}
значение использует соответствующую схему из AvroSchemaRegistry
, которая использовалась этим контроллеромservice.
В вашем случае ваш потоковый файл не имеет атрибута ${valor.vaengine}
, чтобы добавить этот атрибут в потоковый файл, используйте UpdateAttribute
процессор, добавьте новое свойство как
valor.vaengine
<schema_name_in_avroschemaregistry>
Используйте этот шаблон для получения более подробной информации о настройке / использовании Record Reader/writer
служб контроллера
Выиспользуя JsonPathReader службу контроллера для этой службы контроллера
нам нужно добавить по крайней мере одно пользовательское свойство , чтобы включить службу контроллера, например, имя свойства как id
значение как $.id