0

我正在创建端到端流,通过使用消费 Kafka 来处理通过 tealium 事件流接收的 Json 文件,从而将数据消费到 HDFS 中。目前,我使用了 Consume Kafka -> Evaluate Json Path -> Jolttransform Json -> Merge Content -> Evaluate Json Path -> Update attribute -> PutHDFS

要求是将全天假脱机的 Json 数据读取到单个文件中,引用属性 postdate(之前的隐蔽纪元到 YYYYMMDDSS 时间戳)并每天读取数据以合并到单个文件中,最后根据与 POST_DATE 字段相关的时间戳重命名文件区分日常文件。除了根据源属性时间戳字段重命名合并文件的时间戳之外,我已经完成了所有部分。你能帮我如何根据属性_year_month_day重命名文件吗?

4

2 回答 2

0

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

于 2019-10-09T15:39:44.520 回答
0

如果要从属性中解析“年”和“月”POST_DATE,可以使用formatandtoDate函数。

例如:

-- 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}.

于 2019-10-08T07:03:02.283 回答