Hi Mark and Matt,
I think, in the form I wrote it, it does not work.
This is what the logs say
java.lang.RuntimeException: parse failed: Encountered ":" at line 4, column 16.
Was expecting one of:
<EOF>
"ORDER" ...
"LIMIT" ...
"OFFSET" ...
"FETCH" ...
"FROM" ...
"," ...
"UNION" ...
"INTERSECT" ...
"EXCEPT" ...
"MINUS" ...
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:750)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:632)
at
org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:602)
at
org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
at
org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:595)
at
org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:615)
at
org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:148)
at
org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:218)
at
org.apache.nifi.processors.standard.QueryRecord.query(QueryRecord.java:481)
at
org.apache.nifi.processors.standard.QueryRecord.onTrigger(QueryRecord.java:280)
at
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
at
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1118)
at
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:144)
at
org.apache.nifi.controller.tasks.ContinuallyRunProcessorTask.call(ContinuallyRunProcessorTask.java:47)
at
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:132)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
This is the SQL query
SELECT
message,
${file.lastModifiedTime} AS lmt
FROM
FLOWFILE
If I do the following it works
SELECT
message,
CURRENT_TIME AS lmt
FROM
FLOWFILE
(so that’s not a schema error).
Giovanni Lanzani
Chief Science Officer GoDataDriven
T: @gglanzani
M: +31 6 5120 6163
From: Mark Payne<mailto:[email protected]>
Sent: Wednesday, June 7, 2017 4:03 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: Expression language in QueryRecord
Giovanni,
Yes, this should work. In the upcoming version 1.3.0, there is actually an
UpdateRecord processor that
may actually be easier than this though. You'll be able to just add a property
named /lmt with a value of ${file.lastModifiedTime} and
that will insert it for you. :)
Thanks
-Mark
On Jun 7, 2017, at 9:59 AM, Giovanni Lanzani
<[email protected]<mailto:[email protected]>>
wrote:
Sorry, hit send to quickly:
Hi,
Is it possible to do something like this in a QueryRecord processor:
SELECT
message,
${file.lastModifiedTime} AS lmt
FROM
FLOWFILE
?
i.e. access a flowfile attribute? The Record Reader is a json, that has the
“message” field, the Record Writer is also a JSON, with a message and lmt field.
I was hoping that, in this way, it would have been easy to add attributes to
json’s (or other things) without using the Executescript processor
(in reality I wanted some excuses to familiarize myself with all the new
goodies you introduced 😊)
Thanks in advance, and sorry for the double email.
Giovanni Lanzani
Chief Science Officer GoDataDriven
T: @gglanzani
M: +31 6 5120 6163
From: Giovanni Lanzani<mailto:[email protected]>
Sent: Wednesday, June 7, 2017 3:56 PM
To: [email protected]<mailto:[email protected]>
Subject: Expression language in QueryRecord
Hi,
Is it possible to do something like this in a QueryRecord processor:
SELECT
message,
${file.lastModifiedTime} AS lmt
Giovanni Lanzani
Chief Science Officer GoDataDriven
T: @gglanzani
M: +31 6 5120 6163