Apache nifi 合并具有nifi的内容-长度不一致
我试图用MergeContent处理器在磁盘上写一个文件,但我得到的文件大小差别很大——从一行到806行。我多次重复这个过程,试图找出中提到的新线标界器,我得到的文件大小非常随机 我需要设置哪些参数来遵循以下逻辑Apache nifi 合并具有nifi的内容-长度不一致,apache-nifi,Apache Nifi,我试图用MergeContent处理器在磁盘上写一个文件,但我得到的文件大小差别很大——从一行到806行。我多次重复这个过程,试图找出中提到的新线标界器,我得到的文件大小非常随机 我需要设置哪些参数来遵循以下逻辑 建立一个单独的箱子 将所有流文件路由到bin 如果len(bin)>X或bin的使用年限大于Max bin age,则释放bin 为了完整记录,我目前定义了以下属性: 如您所见,我已按照中的语法将“Max Bin Age”设置为“10秒”(这是我找到此值示例的唯一地方,关于此参数的文
按照上述逻辑,我需要做什么来聚合我的记录?我还尝试使用“Correlation Attribute Name”参数,该参数的属性保证在到达此点的所有文档上都是相同的,并且看到了相同的这里最重要的事情实际上是最小条目数。现在的情况是,装箱算法在项目数量方面采取了宽松的方法 对于您的特定逻辑,您希望让事情保持现状,并:
- 将最小条目数设置为5000
- (可选)增加最大条目数。将其保持为配置状态将生成正好为5000个条目的箱子,但年龄间隔已被掩盖的时期除外
如果有人遇到这个问题,原因可能是没有在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,我将更新线程!