如何使用 SimpleDatabaseLookupService 使用 Apache NiFi 对 CSV 文件进行数据扩充

我有一个像这样的 csv 文件:

ProductId,CategoryId
1,1
1,2
1,3
2,1
2,2
2,3
...
... nearly 1 million records

从这个 csv,我想产生另一个 csv,如下所示:

ProductId,CategoryId,ProductName,CategoryName
1,1,Shirt,Mens
1,2,Boys
1,3,Uni
2,Watch,Mens
2,Boys
2,Uni

为此,我设置了 NiFi 流程如下:

GetFile 
        -> LookupRecord 
           -> uses SimpleDatabaseLookupService to query DB table "PRODUCT" using ProductId to get ProductName
           -> uses CSVRecordSetWriter to write the ProdcutName value back to the CSV
        -> LookupRecord
           -> uses SimpleDatabaseLookupService to query DB table "CATEGORY" using CategoryId to get CategoryName
           -> uses CSVRecordSetWriter to write the CategoryName value back to the CSV

这有效,至少在大约有 40K 行的文件上是有效的。但是,只要我输入包含超过一百万条记录的原始文件,NiFi 就会挂起。

所以我的问题是: 有没有办法优化我的流程,可以处理这么大的数据集?

注意:我的文件中有重复的 ProductId 和 CategoryId。我当前的流程为每一行执行。我想知道是否可以利用这个事实来优化流程,但我不知道如何。任何帮助将不胜感激。谢谢。

csj871018 回答:如何使用 SimpleDatabaseLookupService 使用 Apache NiFi 对 CSV 文件进行数据扩充

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/34037.html

大家都在问