[ 
https://issues.apache.org/jira/browse/NIFI-5081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Forrester updated NIFI-5081:
---------------------------------
    Description: 
I've got a Node process that outputs in JSON onto an SQS queue. The dates it 
spits out are ISO-8601 dates within a string, which is the normal, default and 
best way to do this in JSON.

I tried putting them into MongoDB with PutMongo and they go in as strings, 
which is not good ( https://issues.apache.org/jira/browse/NIFI-2079 ).

Gave up on Mongo and tried PostgreSQL...

Figuring I was in Java land I used an esoteric path of GetSQS > 
EvaluateJsonPath > UpdateAttribute [ 
"$\{time:toDate("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "GMT") ] > PutSQL to get it 
into what I assume is a java.lang.Date, it took me forever to find the 
sql.args.N.type's required but for some reason PutSQL does not like 
java.util.Dates.

Eventually found the ConvertJSONToSQL processor and this created my SQL for me, 
but it doesn't work as it leaves ISO-8601 dates as ISO-8601 dates, which don't 
seem to work.

Eventually found this 
[https://community.hortonworks.com/questions/84772/putsql-with-date-as-argument.html]
 and now I have something working, but I'm using my esoteric GetSQS -> 
EvaluateJsonPath -> UpdateAttribute -> PutSQL path again.

Having to convert an ISO-8601 date to a number, particularly using the format 
above is pretty terrible. Putting dates in a database should be trivial and 
probably just work with ISO-8601 / java.util.Date. Think there should be some 
documentation around this at least because it's very non-obvious.

  was:
I've got a Node process that outputs in JSON onto an SQS queue. The dates it 
spits out are ISO-8601 dates within a string, which is the normal, default and 
best way to do this in JSON.

I tried putting them into MongoDB with PutMongo and they go in as strings, 
which is not good ( https://issues.apache.org/jira/browse/NIFI-2079 ).

Gave up on Mongo and tried PostgreSQL...

Figuring I was in Java land I used an esoteric path of GetSQS > 
EvaluateJsonPath > UpdateAttribute [ 
"$\{time:toDate("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "GMT") ] > PutSQL to get it 
into what I assume is a java.lang.Date, it took me forever to find the 
sql.args.N.type's required but for some reason PutSQL does not like 
java.util.Dates.

Eventually found the ConvertJSONToSQL processor and this created my SQL for me, 
but it doesn't work as it leaves ISO-8601 dates as ISO-8601 dates, which don't 
seem to work.

Eventually found this 
[https://community.hortonworks.com/questions/84772/putsql-with-date-as-argument.html]
 and now I have something working, but I'm using my esoteric GetSQS -> 
EvaluateJsonPath -> UpdateAttribute -> PutSQL path again.

Having to convert an ISO-8601 date to a number, particularly using the format 
above is pretty terrible. Putting dates in a database should be trivial and 
probably just work with ISO-8601 / java.util.Date. Think there should be some 
documentation around this.


> Lack of guidance and inability to deal with ISO-8601 dates
> ----------------------------------------------------------
>
>                 Key: NIFI-5081
>                 URL: https://issues.apache.org/jira/browse/NIFI-5081
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Documentation & Website
>    Affects Versions: 1.6.0
>         Environment: Ubuntu / Chromeium
>            Reporter: Matt Forrester
>            Priority: Minor
>         Attachments: y.xml
>
>
> I've got a Node process that outputs in JSON onto an SQS queue. The dates it 
> spits out are ISO-8601 dates within a string, which is the normal, default 
> and best way to do this in JSON.
> I tried putting them into MongoDB with PutMongo and they go in as strings, 
> which is not good ( https://issues.apache.org/jira/browse/NIFI-2079 ).
> Gave up on Mongo and tried PostgreSQL...
> Figuring I was in Java land I used an esoteric path of GetSQS > 
> EvaluateJsonPath > UpdateAttribute [ 
> "$\{time:toDate("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "GMT") ] > PutSQL to get it 
> into what I assume is a java.lang.Date, it took me forever to find the 
> sql.args.N.type's required but for some reason PutSQL does not like 
> java.util.Dates.
> Eventually found the ConvertJSONToSQL processor and this created my SQL for 
> me, but it doesn't work as it leaves ISO-8601 dates as ISO-8601 dates, which 
> don't seem to work.
> Eventually found this 
> [https://community.hortonworks.com/questions/84772/putsql-with-date-as-argument.html]
>  and now I have something working, but I'm using my esoteric GetSQS -> 
> EvaluateJsonPath -> UpdateAttribute -> PutSQL path again.
> Having to convert an ISO-8601 date to a number, particularly using the format 
> above is pretty terrible. Putting dates in a database should be trivial and 
> probably just work with ISO-8601 / java.util.Date. Think there should be some 
> documentation around this at least because it's very non-obvious.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to