问题描述
我尝试了建议使用UpdateAttribute"处理器来消除时间戳格式转换错误的解决方案,即ConvertJSONtoSQL-> UpdateAttribute--> PutSQL
I tried the solution suggested to remove the timestamp format conversion error by using "UpdateAttribute" processor i.e. ConvertJSONtoSQL-> UpdateAttribute--> PutSQL
在 UpdateAttribute 中我使用了
In UpdateAttribute I used
Property Value
--------------- ------------------------
sql.args.4.value -> ${sql.args.4.original:format("yyyy-MM-dd HH:mm:ss")}
日志:
sql.args.4.value的值为'',无法转换为时间戳在org.apache.nifi.processors.standard.PutSQL.setParameters(PutSQL.java:690)在
The value of the sql.args.4.value is '', which cannot be converted to a timestamp at org.apache.nifi.processors.standard.PutSQL.setParameters(PutSQL.java:690) at
在不使用 UpdateAttribute 的情况下,我还尝试了直接 ConvertJSONtoSQL-> PutSQL .日志在引用 'Aug 14 2017 10:17:00 EDT' 中显示了与 datetime 值相同的错误,即当我们使用 UpdateAttribute 时,它只是删除该值并放置空引号,但错误未解决.
Without the use of UpdateAttribute I also tried direct ConvertJSONtoSQL-> PutSQL . Log showed the same error with datetime value in quote 'Aug 14 2017 10:17:00 EDT' i.e. when we use UpdateAttribute, it just removes the value and put empty quotes but the error is not resolved.
注意: MySQL 表具有这些列的日期时间数据类型,不确定为什么尝试转换为时间戳会出错.我还在本地主机上的源表和目标表中尝试了 Timestamp 数据类型,但不走运!
Note: MySQL table has datetime datatype for those columns not sure why it errors out by trying to convert to TimeStamp. I also tried Timestamp datatype in source and target table on localhost, no luck!
推荐答案
我找到了问题的答案
sql.args.n.value ->${sql.args.n.value:format("yyyy-MM-dd HH:mm:ss.SSS")}
.
这篇关于Nifi PutSQL 时间戳/日期时间错误无法转换错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!