0

我有以下情况apache-nifi

流文件1:

id,name
1,sachith
2,nalaka
3,muha

流文件2:

id,email
1,sachith@email.com
2,nalaka@email.com

合并这两个流文件后,结果应该是:

id,name,email
1,sachith,sachith@email.com
2,nalaka,nalaka@email.com
3,muha,

这里最重要的部分是,3,muha,行应该在那里,email字段为空。

在 NiFi 中提到了 Merge two JSON flowfile together,这与我的问题非常相似。但不是为该行添加空值。

如何使用 Apache Nifi 加入两个 CSV

现在我已经尝试过使用MergeContent处理器,但它附加了两个流文件。不添加为具有唯一 ID 的新列。

这里非常相似的问题,Merge two schemas into one in Apache nifi,但它没有太多细节。

4

1 回答 1

3

如果您可以将 LookupRecord 与 CSVRecordLookupService 一起使用,而不是两个流文件,那么您应该能够使用另一个流文件的详细信息来丰富原始流文件。

进行流式丰富本身并不是真正的多流操作,因为流文件可能会在不同的时间和不同的地方出现,如果流文件没有被丰富,您将如何决定何时发送流文件,或者需要多少内存在等待匹配时需要存储未丰富的流文件吗?

在 NiFi 世界中,假设有一个用于丰富数据的“静态”位置,并且使用带有 LookupService 的 LookupRecord,您可以在数据通过时丰富数据。当然,一些 LookupService 实现可能支持更新(例如,如果添加了其他行,则为 DatabaseRecordLookupService),但丰富发生在处理输入流文件的时间点,因此 LookupRecord 只能访问当时可以从 LookupService 获得的内容查找已完成。

于 2019-12-05T02:55:20.143 回答