gpt4 book ai didi

java - QueryRecord 与 PartitionRecord 以获得更好的性能?

转载 作者:行者123 更新时间:2023-11-30 06:02:39 25 4
gpt4 key购买 nike

在 NiFi 数据流中,如果我想根据特定字段的值将单个流文件分成两组,就性能而言,按以下方式使用 QueryRecord 或 PartitionRecord 是否更快?

查询记录:

SELECT * FROM FLOWFILE WHERE WEIGHT < 1000;

分区记录

  1. UpdateRecordRecordPath 模式下填充新的“字符串”字段 greater_or_less值为/weight
  2. UpdateRecord文字值模式下更新greater_or_less${field.value:toNumber():lt(1000)}
  3. PartitionRecordgreater_or_less 上对流文件进行分区

在 PartitionRecord 方法中,我将有两个模式,一个是原始数据格式,另一个具有 greater_or_less除了原始数据格式之外的字段。我们将从原始模式中的步骤 1 开始,在新模式中从步骤 1 输出,然后在原始模式中输出步骤 3。步骤 3 的输出应该是两个流文件,其中一个相当于 QueryRecord 方法的输出。

总而言之,虽然 QueryRecord实现起来比较简单,我对NiFi的后端机制没有任何了解,也不了解这些处理器的开销如何比较,所以我不确定哪种方法是最佳的。我的直觉告诉我 QueryRecord很昂贵,但我不确定它与 PartitionRecord 的类型切换和记录读写相比如何。方法。

最佳答案

我不知道哪个更快,但两者都在 Apache Calcite 上运行,速度非常快。
您是否考虑过使用GenerateFlowfile来生成测试数据并尝试一下?

我希望 PartitionRecord 是最好的,但使用 filter with a predicate而不是使用 UpdateRecord 在架构中生成新字段。

关于java - QueryRecord 与 PartitionRecord 以获得更好的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51977615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com