Apache nifi 使用JSONTERREADER在ConsumerKafCareRecord中设置schema.name

Apache nifi 使用JSONTERREADER在ConsumerKafCareRecord中设置schema.name,apache-nifi,Apache Nifi,我正试图使用ConsumerKafkaRecord处理器和JsonTreeReader作为读卡器来阅读卡夫卡 我需要将schema.name设置为我的AvroRegistrycontoller服务器中的架构名称。 但是,在从卡夫卡那里读取数据之前,我该怎么做呢 我还尝试将schema.name设置为静态值,甚至尝试将读取器中的schema.text属性(策略设置为readschema.text)设置为原始模式json,它仍然出错,抱怨无法在流文件中找到schema.name 我将如何使用Cons

我正试图使用
ConsumerKafkaRecord
处理器和
JsonTreeReader
作为读卡器来阅读卡夫卡

我需要将
schema.name
设置为我的
AvroRegistry
contoller服务器中的架构名称。
但是,在从卡夫卡那里读取数据之前,我该怎么做呢

我还尝试将
schema.name
设置为静态值,甚至尝试将读取器中的
schema.text
属性(策略设置为read
schema.text
)设置为原始模式json,它仍然出错,抱怨无法在流文件中找到
schema.name


我将如何使用
ConsumerKafCareRecord
JsonTreeReader

通常,如果您有一个具有“用户架构名称”的读取器,那么“架构名称”默认为“${Schema.Name}”,这意味着从传入流文件的属性中获取架构名称,该属性名为“Schema.Name”


由于ConsumerKafkaRecord(以及所有其他Consumer Kafka处理器)都是源处理器,因此没有带有属性的传入流文件,因此您不能引用${schema.name}。您必须将JSONTERREADER中的“Schema Name”设置为实际的Schema Name,而不是动态值。

您使用的是哪个版本的NiFi?另外,JsonTreeReader的模式访问策略设置是什么?它应该匹配您希望从何处获取架构,因此“使用架构名称”将使用架构名称属性(和注册表),“使用架构文本”将使用架构文本属性,等等。