当前,我正在使用ConsumeKafkaRecord,Merge Content和PutHDFS将数据从kafka加载到Hive。我们需要针对多个kafka主题将其自动化。有什么办法可以在nifi中做到这一点。
例如:如果我给主题名称输入abc,xyz,则来自abc主题的数据应移至/ abc,而来自xyz的数据应移至/ xyz文件夹。
请提出建议。
答案 0 :(得分:4)
ConsumeKafkaRecord处理器将编写一个名为kafka.topic
的属性,其中包含记录来自的主题的名称。
PutHDFS的 directory 参数支持表达式语言。
因此,您可以在其中指定类似/${kafka.topic}
的内容
答案 1 :(得分:0)
关于问题的第二部分,您可以基于'kafka.topic'属性合并文件(使用mergeContent)。这样,您可以使用一个处理器合并不同主题的内容。 (每个主题的数据将仅与该特定主题的数据合并)
然后您可以通过将路径提到为“ hdfs:// $ {your-hdfs-path} / $ {kafka.topic}”来将文件路由到HDFS中的其他目录
让我知道您是否需要更多帮助!