首页 文章

如何在Apache NiFi中向Avro架构添加字段?

提问于
浏览
0

我能够通过CSVReader获得Apache NiFi来生成模式,然后我可以使用ConvertRecord将模式写入属性 . 但是,我需要使用UpdateRecord添加字段,但这些字段不会添加到流文件或schema属性中 . 我相信这是因为这些字段不是最初推断的模式的一部分 . 我无法在注册表中创建架构,因为它是从文件中推断出来的 . 那么当架构不包含字段时,如何向记录添加字段?

2 回答

  • 3

    您是否使用InferAvroSchema不必担心生成架构,或者您真的不知道CSV文件的架构?如果是前者,则发送一个CSV,然后将推断的模式复制到CSVReader,并将UpdateRecord中的字段添加到写模式中 .

    我已经编写了NIFI-5524来涵盖基于UpdateRecord属性在传出模式中添加/更新字段的自动化 .

  • 1

    是的,那是因为你在其中定义了 writer controller service doesn't have the new fields .

    如果您是 adding new fields then we need to define new avro schema ,其中包含架构编写器控制器服务中包含的其他字段 .

    Schema Access Strategy 更改为

    使用'架构名称'属性(或)使用'架构文本'属性

    然后定义新的模式,包括其中的新字段,以便Update Record处理器将新字段添加到输出流文件中 .

    请查看this文章,因为我在其中添加了输入数据中不存在的 ts_tz,current_ts..etc 个字段,并使用包含 all the new/old fieldsnew avro schema 定义了 writer controller service .

相关问题