我正在研究ETL工具(如Talend)并调查是否可以使用Apache Nifi.可以使用Nifi执行以下操作:
我已经尝试在Nifi中设置工作,但无法看到如何执行两个单独的CSV文件的连接.这个任务在Apache Nifi中是否可行?
看起来QueryDNS处理器可以用于使用另一个来执行一个CSV文件的丰富,但对于这个用例来说这似乎过于复杂.
以下是输入CSV的示例,需要在state_id上加入:
customers.csv
id | name | address | state_id
---|------|--------------|---------
1 | John | 10 Blue Lane | 100
2 | Bob | 15 Green St. | 200
Run Code Online (Sandbox Code Playgroud)
states.csv
state_id | state
---------|---------
100 | Alabama
200 | New York
Run Code Online (Sandbox Code Playgroud)
output.csv
id | name | address | state
---|------|--------------|---------
1 | John | 10 Blue Lane | Alabama
2 | Bob | 15 Green St. | New York
Run Code Online (Sandbox Code Playgroud)
Bry*_*nde 10
Apache NiFi更像是一种数据流工具,并不是真正用于执行流数据的任意连接.通常,这些类型的操作更适合于流处理系统,如Storm,Flink,Apex等,或ETL工具.
NiFi可以做得很好的连接类型是富集查找,其中有一个固定大小的查找数据集,对于传入数据中的每个记录,您使用查找数据集来检索某些值.例如,在您的情况下,可能有一个名为LookUpState的处理器,它具有一个属性"State Data",它指向包含所有状态的文件,那么customers.csv可以是该处理器的输入.
社区成员启动了一个项目,为NiFi制作通用查找服务:https: //github.com/jfrazee/nifi-lookup-service