Thanks for your reply! Then my question is, how can I convert this "long" value to a timestamp that can be compared with keywords like "CURRENT_TIME", "INTERVAL 1 MIN" in Calcite?
Best regards, Qiaochu On Thu, Jun 30, 2016 at 3:26 PM, Julian Hyde <[email protected]> wrote: > The short answer is “yes”. > > In the streaming SQL specification, the timestamp column does not have to > be called ROWTIME, does not have to be a timestamp, does not have to be > strictly ascending. You can aggregate by any quasi-monotonic value. > ("Quasi-monotonic" includes strictly ascending, ascending within a window > (say, records are within 1 hour of being sorted), or if the system or > producer promises to provide watermarks.) > > But to be clear, that’s the specification. Calcite’s current > implementation of the specification is not perfect, so you may find bugs. > > Did you really mean that ts is a double? It looks like a long (i.e. 64 bit > integer). I wouldn’t recommend using floating-point numbers for timestamps, > because systems such as JSON parsers tend to mangle them, and subtraction > is lossy. > > Julian > > > > On Jun 30, 2016, at 10:24 AM, Qiaochu Liu <[email protected]> wrote: > > > > Dear developers, > > > > I have a input Stream Topic which has the following message. I want to > execute complex SQL query ( group by and sliding window ) on top of this > topic. > > > > > >> "{'uuid': 'uuid1', 'ts': 1461780508, 'msg': {'booleanField': true, > 'doubleField': 1.1, 'longField': 1, 'intField': null}}" > >> "{'uuid': 'uuid1', 'ts': 1461780608, 'msg': {'booleanField': true, > 'doubleField': 1.1, 'longField': 1, 'intField': null}}" > >> > > In this message, "ts" is a double value which represent "timestamp", I > wonder if it is possible to make the "ts" field working as "rowtime" in > Calcite Streaming SQL examples, so that I can execute GROUP BY and WINDOW > query on it? > > > > Sorry I don't know how to subscribe the developer maillist, can you give > me some hint? > > > > Best regards, > > Qiaochu > > > >
