最近,我在使用实时数据进行工程设计时会遇到结构流中的“前n行”问题。我需要获得50个最新的事件时间记录作为输出,但结构流给我一个完整的无界表或几个更新的结果。我在网上搜索了很多,有以下几种方法:
(1)使用TTL,但我认为它是基于摄取时间,这不是我想要的事件时间;
(2)使用Flink捕获最新的事件时间记录。在此期间使用flink和结构流是一件麻烦事。如下,我曾尝试使用flink 1.6,静态是一个表吗?我不知道如何处理,因为没有输出。
val source: KafkaTableSource = Kafka010JsonTableSource.builder()
.forTopic("BINANCE_BTCUSDT_RESULT")
.withKafkaProperties(properties)
.withSchema(TableSchema.builder()
.field("timestamp", Types.SQL_TIMESTAMP)
.field("future_max", Types.DOUBLE)
.field("future_min", Types.DOUBLE)
.field("close",Types.DOUBLE)
.field("quantities",Types.DOUBLE).build())
.fromEarliest()
.build()
tableEnv.registerTableSource("statics", source)
val statics = tableEnv.scan("statics")
statics.?
任何机构都可以告诉我更多关于前n行问题的解决方法吗?如果问题解决了,如何将数据框发布到url?
答案 0 :(得分:0)
我建议你使用Flink 1.5,因为1.6还不稳定(事实上,1.5刚刚发布)。
当使用Flink的事件时间时,Flink需要知道您的时间戳,并且它需要水印,这表示事件时间的流程。要使用Kafka010JsonTableSource执行此操作,您应配置rowtime attribute。
请注意,fetch()仅在批处理模式下使用Flink SQL时可用。