Apache nifi Nifi:MergeRecord不';t等待并将json文件分组到一个批中

Apache nifi Nifi:MergeRecord不';t等待并将json文件分组到一个批中,apache-nifi,Apache Nifi,我遇到了Apache NiFi的问题。 我有大约100.000k+json文件,看起来像: [ { "client_customer_id" : 8385419410, "campaign_id" : "11597209433", "resourceName" : "customers/8385419410/adGroupAds/118322191652~479093457035",

我遇到了Apache NiFi的问题。 我有大约100.000k+json文件,看起来像:

[ {
  "client_customer_id" : 8385419410,
  "campaign_id" : "11597209433",
  "resourceName" : "customers/8385419410/adGroupAds/118322191652~479093457035",
  "campaign" : "11597209433",
  "clicks" : "0",
  "topImpressionPercentage" : 1,
  "videoViews" : "0",
  "conversionsValue" : 0,
  "conversions" : 0,
  "costMicros" : "0",
  "ctr" : 0,
  "currentModelAttributedConversions" : 0,
  "currentModelAttributedConversionsValue" : 0,
  "engagements" : "0",
  "absoluteTopImpressionPercentage" : 1,
  "activeViewImpressions" : "0",
  "activeViewMeasurability" : 0,
  "activeViewMeasurableCostMicros" : "0",
  "activeViewMeasurableImpressions" : "0",
  "allConversionsValue" : 0,
  "allConversions" : 0,
  "averageCpm" : 0,
  "gmailForwards" : "0",
  "gmailSaves" : "0",
  "gmailSecondaryClicks" : "0",
  "impressions" : "2",
  "interactionRate" : 0,
  "interactions" : "0",
  "status" : "ENABLED",
  "ad.resourceName" : "customers/8385419410/ads/479093457035",
  "ad.id" : "479093457035",
  "adGroup" : "customers/8385419410/adGroups/118322191652",
  "device" : "DESKTOP",
  "date" : "2020-11-25"
} ]
在将其逐个保存到数据库之前,我想在一个json中创建包含1000-10000个元素的批处理,然后将其保存到DB以提高速度。
MergeRecord
设置:

我期望的是什么:
MergeRecord
等待一段时间将json分组,创建一个json中包含1000-10000个元素的批处理,然后将此批处理发送到
PutDatabaseRecord
处理器

实际行为:
MergeRecord
立即将json逐个发送到
PutDatabaseRecord
,而不进行分组和连接。 1/10流文件将包含多个json文件作为一个文件,正如您在屏幕截图上看到的大小一样。但处理器的这些设置似乎并不适用于所有文件:


我不明白哪里出了问题<代码>合并记录设置还是json文件?这是一种非常缓慢的行为,我的数据(1.5 Gb)可能会在一天内存储。

我复制这一点的唯一方法是为每个流文件使用一个随机的table.name,这将导致每个文件都位于其自己的存储箱中,快速填充“最大存储箱数”,并导致每个文件作为单独的流文件发送。如果你有超过10张桌子,我会增加设置

我唯一的另一个建议是处理MergeRecord处理器的运行计划和运行持续时间(在scheduling选项卡上)。例如,如果将运行计划设置为2分钟,处理器将每两分钟运行一次,并尝试合并队列中尽可能多的文件