Apache nifi 将年、月和日时间戳附加到合并的输出文件

Apache nifi to append year, month and day timestamp to the merged output file

我正在创建端到端流程,通过对通过 Tealium 事件流接收的 Json 文件使用 Consume Kafka,将数据消耗到 HDFS 中。目前,我使用了 Consume Kafka -> Evaluate Json Path -> Jolttransform Json -> Merge Content -> Evaluate Json Path -> Update attribute -> PutHDFS

要求是读取Json一整天的数据,并参考属性postdate(将epoch隐藏到之前的YYYYMMDDSS时间戳)合并到一个文件中,每天读取数据合并到一个文件中,最后重命名根据与 POST_DATE 字段相关的时间戳来区分日常文件。除了根据源属性时间戳字段重命名合并文件的时间戳之外,我已经完成了所有部分。你能帮我根据属性重命名文件吗_year_month_day?

如果你想POST_DATE属性中解析"year"和"month",你可以使用formattoDate函数。

例如:

-- year
format(toDate(${POST_DATE}, "YYYYMMDDSS"),"yyyy")

-- month
format(toDate(${POST_DATE}, "YYYYMMDDSS"),"MM")

--day
format(toDate(${POST_DATE}, "YYYYMMDDSS"),"dd")

我不确定重命名文件的含义,如果它意味着在放入 HDFS 之前更改文件名,您可以简单地使用 UpdateAttribute 处理器然后更新属性包含输出文件名,如 ${year}_${month}_${day}

@gogocatmario,感谢您的回复。 问题已解决 post 在 update_attribute 上为文件名 属性 添加以下值。 tealium_es_${post_date:toDate("yyyy-MM-dd HH:mm:ss"):format("yyyy_MM_dd")}.json1