[ 
https://issues.apache.org/jira/browse/FLINK-23177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17371834#comment-17371834
 ] 

Ingo Bürk commented on FLINK-23177:
-----------------------------------

Thanks for opening this issue. This is indeed the expected behavior. 
`StreamTableEnvironment#createTemporaryView(String, DataStream)` uses 
`#fromDataStream(DataStream)`, and the JavaDocs states that watermarks are not 
propagated by default:
{quote}By default, the stream record's timestamp and watermarks are not 
propagated unless explicitly declared via \{@link #fromDataStream(DataStream, 
Schema)}.
{quote}
You can solve this by calling `#fromDataStream` yourself, adding the watermark 
information there and then using `#createTemporaryView(String, Table)`.

 

CC [~twalthr] as an FYI

> watermarks generated in dateStream can not flow into table
> ----------------------------------------------------------
>
>                 Key: FLINK-23177
>                 URL: https://issues.apache.org/jira/browse/FLINK-23177
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Core
>    Affects Versions: 1.13.1
>         Environment: flink: 1.13.1
>            Reporter: Spongebob
>            Priority: Major
>
> I have assigned watermark in dataStream and then use the 
> `createTemporaryView` method to build a table that is source from the 
> dataStream. Out of my expectation, the watermarks works normally in 
> dataStream but the watermarks of the table stay at -9223372036854775808 
> forever.
> {code:java}
> def main(args: Array[String]): Unit = {
>     val streamEnv = ...
>     streamEnv.enableCheckpointing(1000)
>     streamEnv.setRestartStrategy(RestartStrategies.fixedDelayRestart(2, 1000))
>     val dataStream = ...
>     val resultStream = dataStream.map(
>       value => {
>         val data = value.split(",")
>         (data(0), data(1).toInt)
>       }
>     ).assignTimestampsAndWatermarks(WatermarkStrategy
>       .forBoundedOutOfOrderness(Duration.ZERO)
>       .withTimestampAssigner(new SerializableTimestampAssigner[(String, Int)] 
> {
>         override def extractTimestamp(element: (String, Int), 
> recordTimestamp: Long): Long = element._2 * 1000
>       }))
>       .process(new MyProcessFunc)
> //    resultStream.print("raw")
> //    streamEnv.execute("")
>     val streamTableEnv = buildStreamTableEnv(streamEnv, 
> EnvironmentSettings.newInstance().inStreamingMode().useBlinkPlanner().build())
>     streamTableEnv.createTemporaryView("catalog_test1", resultStream)
>     ...
>   }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to