Hi,

Experimenting with the StreamTableEnvironment I build something like this:

DataStream<Tuple3<Long, String, Long>> letterStream = ...
tableEnv.registerDataStream("TestStream", letterStream, "EventTime.rowtime,
letter, counter");


Because the "EventTime" was tagged with ".rowtime" it is now being used as
the rowtime and has the DATETIME so I can do this

TUMBLE_START(eventTime, INTERVAL '1' MINUTE)


So far so good.

Working towards a more realistic scenario I have a source that produces a
stream of records that have been defined using Apache Avro.

So I have a Measurement.avdl that (among other things) contains something
like this:

record Measurement {
   /** The time (epoch in milliseconds since 1970-01-01 UTC) when the event
occurred */
    long                        timestamp;
    string                      letter;
    long                        pageviews;
}


Now because the registerDataStream call can also derive the schema from the
provided data I can do this:

DataStream<Measurement> inputStream = ...
tableEnv.registerDataStream("DataStream", inputStream);


This is very nice because any real schema is big (few hundred columns) and
changes over time.

Now In the SQL the timestamp is a BIGINT and not a DATETIME and as a
consequence I get this error

Cannot apply 'TUMBLE' to arguments of type 'TUMBLE(<BIGINT>, <INTERVAL
MINUTE>)'. Supported form(s): 'TUMBLE(<DATETIME>, <DATETIME_INTERVAL>)'


So far I have now yet figured how to make the system understand that the
timestamp column show be treated as the rowtime.
How do I do that?

-- 
Best regards / Met vriendelijke groeten,

Niels Basjes

Reply via email to