Apache nifi 合并具有nifi的内容-长度不一致

Apache nifi 合并具有nifi的内容-长度不一致,apache-nifi,Apache Nifi,我试图用MergeContent处理器在磁盘上写一个文件,但我得到的文件大小差别很大——从一行到806行。我多次重复这个过程,试图找出中提到的新线标界器,我得到的文件大小非常随机 我需要设置哪些参数来遵循以下逻辑 建立一个单独的箱子 将所有流文件路由到bin 如果len(bin)>X或bin的使用年限大于Max bin age,则释放bin 为了完整记录,我目前定义了以下属性: 如您所见,我已按照中的语法将“Max Bin Age”设置为“10秒”(这是我找到此值示例的唯一地方,关于此参数的文

我试图用MergeContent处理器在磁盘上写一个文件,但我得到的文件大小差别很大——从一行到806行。我多次重复这个过程,试图找出中提到的新线标界器,我得到的文件大小非常随机

我需要设置哪些参数来遵循以下逻辑

  • 建立一个单独的箱子
  • 将所有流文件路由到bin
  • 如果len(bin)>X或bin的使用年限大于Max bin age,则释放bin
  • 为了完整记录,我目前定义了以下属性:

    如您所见,我已按照中的语法将“Max Bin Age”设置为“10秒”(这是我找到此值示例的唯一地方,关于此参数的文档似乎不完整)

    我已将“最大条目数”设置为5000,“最大箱子数”设置为1


    按照上述逻辑,我需要做什么来聚合我的记录?我还尝试使用“Correlation Attribute Name”参数,该参数的属性保证在到达此点的所有文档上都是相同的,并且看到了相同的

    这里最重要的事情实际上是最小条目数。现在的情况是,装箱算法在项目数量方面采取了宽松的方法

    对于您的特定逻辑,您希望让事情保持现状,并:

    • 将最小条目数设置为5000
    • (可选)增加最大条目数。将其保持为配置状态将生成正好为5000个条目的箱子,但年龄间隔已被掩盖的时期除外
    下面是上面配置的图像,其中最小和最大存储箱大小均为5000,并且一次仅处理一个存储箱。在本例中,您将看到整整20000个文件已合并为4个文件


    如果有人遇到这个问题,原因可能是没有在MergeContent处理器上设置时间表。经过大量的故障排除,我意识到这是一个“0秒”不是合适时间表的处理器。我已经将我的最小条目设置为一些较高的数字和最大条目。MaxBinAge被设置为5min。正是该计划导致处理器不断抓取流文件并将其打包成随机大小

    有趣的是,当我用GenerateFlowFile构建一个测试流时,我可以得到你所演示的行为,但是当我用测试数据运行它时,我仍然得到一个非常随机的分布,这些文件的最小文件大小应为1000,超时时间为30秒:541 99583 3566100 1453404639289.output.json 16 2920 107583 145340467859.output.json 493 97853 312298 145340475883.output.json 16 3144 102679 1453404809634.output.json 9 1916 66075 145340859568.output.json 33 6612213507 1453404869690.output.json此变化源于没有最小值和最大值相等以及指定最大年龄。在我的示例中,没有最大年龄、1个箱子和最小=最大=5000。最大仓位年龄的作用是避免处理器上的饥饿,以便配置避免输入被无限期地卡住,等待其他内容到达。为此,始终存在差异的可能性,这取决于此处理器的输入流文件的总容量。为了更好地了解使用这些数据所做的工作,您能否在此基础上提供一些关于您对这些数据的期望的附加上下文?谢谢我将处理器改为最小1000行,最大1000行,单个存储箱,超时30秒——结果是,在大约15秒内,20多个文件,例如,541、16、493、16、9和33行。我想知道这是否与某种关联策略或其他什么有关-大多数文件都是以“1453404639289.output.json”模式命名的(这是原始输入文件名的格式),但通常会有一个或两个文件名为.json。重新创建很困难。你介意就你的案件提出一个尽可能详细的问题吗?如果可能的话,还包括一个你正在使用的流程模板,作为额外探索的基础。谢谢我已经提交了bug。谢谢奥尔德林!现在将此标记为答案-如果我做了一些愚蠢的事情,我将更新线程-如果它实际上也是一个bug,我将更新线程!