我遇到了合并分割的FlowFiles的问题。让我一步一步解释这个问题。
这是我的处理器序列。
在Elasticsearch中我有这个索引和映射:
PUT /myindex
{
"mappings": {
"myentries": {
"_all": {
"enabled": false
},
"properties": {
"yid": {"type": "keyword"},
"days": {
"properties": {
"Type1": { "type": "date" },
"Type2": { "type": "date" }
}
},
"directions": {
"properties": {
"name": {"type": "keyword"},
"recorder": { "type": "keyword" },
"direction": { "type": "integer" }
}
}
}
}
}
}
我使用directions
从Elasticsearch获取QueryElasticsearchHTTP
,然后将directions
拆分为使用SplitJson
以获得10个FlowFiles。每个FlowFile都有以下内容:{"name": "X","recorder": "X", "direction": "X"}
在此之后,对于10个FlowFiles中的每一个,我使用filename
和UpdateAttribute
生成属性${UUID()}
。然后,我使用来自ElasticSearch的一些常量数据来丰富每个FlowFile。实际上,我合并到每个FlowFile的数据是相同的。因此,理想情况下,我只想运行Get constants from Elastic
一次而不是运行10次。
但无论如何,关键问题是不同的。 来自Gets constants from Elastic
的FlowFiles具有filename
的其他值,并且无法与来自Set the attribute "filename"
的文件合并。我也尝试使用{{1}但是有同样的问题。知道如何解决这个问题吗?
更新
EvaluateJsonPath
中使用的Groovy代码。我不确定它是否有效,当输入队列中有10个和10个应该合并的文件批次时:
Merge inputs...