首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FlowFile的大小是否会影响I/O

FlowFile的大小是否会影响I/O
EN

Stack Overflow用户
提问于 2019-01-18 00:08:10
回答 1查看 143关注 0票数 0

FlowFile规模的考虑因素是什么?它会影响I/O吗?如果提供足够的内存,它是否越大越好?因为每个FlowFile的NIFI都会从磁盘持续到内存?

特别是对于Kafka Consumer Processor,它包含一个名为Message Demarcator的属性。有了设置,一个FlowFile可以包含多个事件,如果没有它,一个FlowFile只包含一个事件。比方说,如果FlowFile包含1000个json对象,性能会比1个json对象更高吗?

尤其让我困惑的部分是这个文档https://community.hortonworks.com/questions/21011/how-i-extract-attribute-from-json-file-using-nifi.html

它说将JSON值存储在FlowFile属性中,这意味着它为每个FlowFile处理一个json对象,并且一个FlowFile包含一个Json对象。因为如果FlowFile有多个json对象,它必须创建与json对象一样多的属性。例如,每个json对象都有一个名为occurred_at的时间戳字段,然后它必须创建occurred_at_1 occurred_at_2,依此类推。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-18 00:15:58

如果您可以将多个消息放在一个流文件中,您将看到性能的显着提高。例如,假设您从Kafka消费了100万条消息,并且每个流文件有一条消息,这意味着对流文件存储库的100万次写入,100万个来源事件,100万个对象,等等。如果您有1个具有100万条消息的流文件,那么它将是1个对流文件存储库的写入,1个来源事件,1个堆上的对象(不是内容)。

当您在单个流文件中有许多消息时,您不能真正将字段的值提取到属性中,因为正如您所指出的,每个记录的字段值都不同。您可以通过使用记录处理器来解决此问题,该处理器允许您就地处理记录。例如,您可以使用PartitionRecord根据字段的值来分隔消息,而不是使用EvaluateJsonPath + RouteOnAttribute。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54239893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档