NiFi:如何将来自多个文件的数据合并到一个文件中
NiFi: How to combine data from many files into one file
我想从 hdfs 中获取超过 20,000 个 flowfile
并将它们重新组合成一个 flowfile
。
我想从这些文件中获取数据(它们是 xml
格式)并将其输入到名为 content 的变量中,然后当我完成这个过程时我想要以所有这些数据都将在 <data>...</data>
标签内注册的方式对 xml
进行序列化)
是否可以通过 NiFi 处理器完成此任务,或者我将不得不使用 groovy 代码?
标准 NiFi 版本无法做到这一点。您当然可以创建自己的 NiFi 处理器来执行此操作,但这可能有点矫枉过正。
您将不得不使用 groovy。我建议做的是:
1) 从HDFS文件夹中读入文件
2) 处理这些文件并从您想要的文件中获取数据。
3) 如果您想要生成单个 xml 文件:在处理每个文件并获取信息。这可以在本地完成,完成后可以移回 NiFi 监视的 HDFS/a 文件夹以继续您的管道。
注意:是一个可以连接文件的处理器(或者如你所说的'reunite')——MergeContent
处理器。不过,这在您的情况下可能有点没有实际意义。
我想从 hdfs 中获取超过 20,000 个 flowfile
并将它们重新组合成一个 flowfile
。
我想从这些文件中获取数据(它们是 xml
格式)并将其输入到名为 content 的变量中,然后当我完成这个过程时我想要以所有这些数据都将在 <data>...</data>
标签内注册的方式对 xml
进行序列化)
是否可以通过 NiFi 处理器完成此任务,或者我将不得不使用 groovy 代码?
标准 NiFi 版本无法做到这一点。您当然可以创建自己的 NiFi 处理器来执行此操作,但这可能有点矫枉过正。
您将不得不使用 groovy。我建议做的是:
1) 从HDFS文件夹中读入文件
2) 处理这些文件并从您想要的文件中获取数据。
3) 如果您想要生成单个 xml 文件:在处理每个文件并获取信息。这可以在本地完成,完成后可以移回 NiFi 监视的 HDFS/a 文件夹以继续您的管道。
注意:是一个可以连接文件的处理器(或者如你所说的'reunite')——MergeContent
处理器。不过,这在您的情况下可能有点没有实际意义。