2017-06-08 3 views
0

habe ich versucht, flink SQL-Fenster api zu verwenden: https://ci.apache.org/projects/flink/flink-docs-release-1.3/dev/table_api.html#group-windowsflink SQL-Fenster api

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); 
StreamTableEnvironment tableEnv = TableEnvironment.getTableEnvironment(env); 

// ingest a DataStream from an external source 
DataStream<Tuple3<Long, String, Integer>> ds = env.addSource(...); 
// register the DataStream as table "Orders" 
tableEnv.registerDataStream("Orders", ds, "user, product, amount"); 

// compute SUM(amount) per day (in event-time) 
Table result1 = tableEnv.sql(
    "SELECT user, " + 
    " TUMBLE_START(rowtime(), INTERVAL '1' DAY) as wStart, " + 
    " SUM(amount) FROM Orders " + 
    "GROUP BY TUMBLE(rowtime(), INTERVAL '1' DAY), user"); 

zeigen den Fehler:

No match found for function signature rowtime()

Bitte geben Sie mir ein ausführliches Beispiel über flink-SQL-Fenster api mit rowtime.Thx.

Antwort

1

Im Moment sind die Dokumente ein wenig aus der Synchronisation, aber die Community arbeitet daran in einem separaten Zweig. Flink 1.3 führt so genannte "Zeitattribute" ein, um zukünftig explizit auf die Zeit zuzugreifen, diese auszudrücken und mit ihr zu arbeiten. Weitere Informationen finden Sie in der current documentation draft. Einige Beispiele zur Verwendung der Zeitattribute in einem Tabellenprogramm finden Sie unter here.