Flink Table API & SQL 如何定义时间属性

Posted @SmartSi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flink Table API & SQL 如何定义时间属性相关的知识,希望对你有一定的参考价值。

传送门:Flink 系统性学习笔记


Flink 版本:1.11

本文将解释如何在 Flink 的 Table API 和 SQL 中为基于时间的操作定义时间属性(Time Attributes)。

1. 时间属性介绍

基于时间的操作,例如 Table API 和 SQL 查询中的窗口,需要知道时间相关的信息。因此,表需要提供逻辑时间属性以指明时间以及提供访问相应的时间戳。时间属性可以作为表 schema 的一部分,可以在用 CREATE TABLE DDL 语句创建表的时候指定、也可以在 DataStream 中指定、也可以在定义 TableSource 时指定。一旦定义了时间属性,就可以像普通字段一样使用,也可以在时间相关的操作中使用。

只要时间属性没有被修改,只是从一个查询转发到另一个查询,那么仍然是一个有效的时间属性。时间属性类似一个常规时间戳,可以用来计算。当在计算中使用时,时间属性被物化为一个标准时间戳。但是,不能使用普通时间戳来代替时间属性,也不能将其转换为时间属性。

2. 如何定义时间属性

Flink 可以根据如下两种时间概念来处理数据:

  • 处理时间

以上是关于Flink Table API & SQL 如何定义时间属性的主要内容,如果未能解决你的问题,请参考以下文章

2021年大数据Flink(三十):Flink ​​​​​​​Table API & SQL 介绍

Flink Table API & SQL Planner 演变

18-flink-1.10.1-Table API & Flink SQL

Flink Table API & SQL Planner 演变

Flink SQL - 2.Table API & SQL 概述与常规 API

Flink SQL - 1.Table API && Sql 入门 Demo