动态表
在flink的数据处理中,数据流是源源不断的,是无界的,所以对于flink处理的数据表是一张动态表,所以对于动态表的查询也是持续的,每接收一条新数据会进行一次新的查询。
持续查询
因为数据在一直源源不动的到来,所以使用的sql查询是持续查询的的方案,采用更新查询和追加查询。查询后采用的追加更新、撤回流更新、更新插入流。
时间属性
事件时间可以在创建动态表时进行定义,增加一个字段,通过watermark语句进行事件属性的定义。
分组窗口
目前在flink sql中仅支持时间窗口,不能支持数量的窗口
tumble 滚动窗口
hop 滑动窗口
数据查询
在flink中,orderby 必须是时间戳升序
topN语法中可以取消对于order by的限制
去重可以任务底层使用的top1
sql Hints 临时修改数据表配置
内置函数:https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/dev/table/functions/systemfunctions/
module操作:提供一些module方便进行flink功能的增强
连接器(connector)
数据连接器是将数据源与flink进行连接,当flink进行数据插入,则相当于向数据源中写入数据,如果flink进行获取,则相当于从数据源中获取或者消费数据。
对于kafka 作为kv存储,正常来说是不支持进行写入kafka的数据进行更新的,需要使用upsert-kafka 连接器进行支持,这个特性主要是利用了kafka按照key进行哈希
catalog
catalog 提供了元数据信息,例如数据库、表、分区、视图以及数据库或其他外部系统中存储的函数和信息。catalog允许用户引用其数据存储系统中现有的元数据。
table-api
表与流中相关转化,代码中调用了DatastreamAPI,则需要execute,否则不需要.