【问题标题】:Extract Date from epoch in NiFi从 NiFi 的时代中提取日期
【发布时间】:2019-01-16 01:51:44
【问题描述】:

我有一个 CSV 文件,其属性具有像“1517334599.906”这样的纪元值。

我想通过 NiFi 将 Epoch 值转换/更新为 ISO 时间戳 'yyyy-MM-dd HH:mm:ss.SSS'。

这种转换是为了让 Kibana 将该字段识别为时间戳。有没有办法做到这一点?如果有人可以帮我配置一下吗?

【问题讨论】:

  • epoch值是在csv条目的某个字段中,还是在流文件属性中?
  • @BryanBende Epoch 值在 CSV 条目的字段中。有没有办法可以将字段作为流文件属性的一部分来执行操作?目前,任何领域都没有转型。如何使流文件的字段属性? TIA

标签: regex apache elasticsearch kibana apache-nifi


【解决方案1】:

使用 NiFi 的记录功能,您可以将 UpdateRecord 与 CsvReader 和 CsvWriter 一起使用。

参见表达式语言中的“格式”函数,将纪元转换为日期字符串:

https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#format

在 UpdateRecord 中,您可以执行以下操作:

/eventDate = ${field.value:format("yyyy-MM-dd HH:mm:ss.SSS")} 

这表示取 /eventDate 的值(将其更改为您的字段名称)并将该字段的值设置为右侧格式函数的结果。

我唯一不确定的是一个纪元是否可以有小数部分,如您的示例所示。我希望它被转换为一个整数。

【讨论】:

  • 没有'.'也能正常工作部分。感谢您的帮助!
  • 我自己没有尝试过,但是有人给了我这个反馈:链接说要使用记录路径值,但在阅读描述后我看到文字值正在获取 field.value 所以在更改后到更新属性中的文字值它工作正常
猜你喜欢
  • 2014-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-01
  • 2019-01-23
  • 1970-01-01
  • 2012-04-09
  • 1970-01-01
相关资源
最近更新 更多