窗口聚合语句可以使用 Group Window Aggregation 或者 Windowing TVF。Group Window Aggregation 是 Flink1.13 版本之前提供的解决方案,这个方案在 Flink1.13 版本被标记为过时了,不建议使用了。从 Flink1.13 版本开始,官方建议使用 Windowing TVF。下面我将通过样例演示窗口聚合语句的具体使用......
列其实就是字段。 Flink SQL 中的列可以大致划分为常规列(物理列)、元数据列,和计算列。本文将通过样例详细介绍下这几种列。 一、常规列(物理列) 1,基本介绍 常规列定义了物理数据中字段的名称、类型和顺序。 2,使用样例 CREATE TABLE T1( id INT, name STRING ) WITH ( ......
一、数据类型详解 1,基本介绍 (1)Flink SQL 中支持的数据类型大致可以分为三类: 基础数据类型 复合数据类型 自定义数据类型 (2)在工作中,基础数据类型和复合数据类型其实就足够使用了。 2,基础数据类型 (1)字符串:包括:CHAR、VARCHAR、STRING......
当我们想要把动态输出表中的数据转换为输出数据流,或者将其输出到外部存储系统中的时候,需要对这个动态输出表中的数据行为进行编码。 Flink SQL 支持三种编码方式来体现一个动态表的变化,这三种编码方式对应的是三种数据流: Append-only 流,中文翻译为:仅追加流......
一、表类型介绍 1,基本介绍 (1)Flink 中的表从全局层面进行划分,可以分为静态表(Static Table)和动态表(Dynamic Table)。 其中动态表里面中还包括一种特殊的表:时态表(Temporal Table)。时态表是在 Flink1.11 版本中引入的,只在 Blink 引擎中支持......
数据源和目的地都是 Kafka 这种情况再实际工作中比较常见,可以实现数据的实时计算。下面通过样例进行演示。 一、Kafka(Source) + Kafka(Sink)案例 1,准备工作 首先我们需要在项目的 pom.xml 中添加 Flink SQL 相关的依赖,以及 flink-connector-kafka、flink-json 依赖......
DDL 语句主要涉及到创建表、修改表和删除表、但是针对 Flink SQL 而言,在工作中主要涉及的操作就是创建表。下面我将通过案例来演示一下如何使用 Flink SQL 语句创建表。 一、FileSystem(Source) + Print(Sink)案例 1,准备工作 首先我们需要在项目的 pom.xml 中添加 Flink SQL 相关的依赖......
link 中最大的一个亮点其实就是他的 SQL 了,我们之前所接触的 Hive SQL、Spark SQL 都是基于离线数据的 SQL 计算,而 Flink 的 SQL 是可以支持实时数据计算的,这样就可以极大简化企业中实时数据分析的工作量。 一、离线计算与实时计算 1,离线计算......
默认情况下 State 数据会一直存在,如果存储了过多状态数据,可能会导致内存溢出(针对 HashMapStateBackend)。因此从 Flink 1.6 版本开始引入了 State TTL 特性。类似于 Redis 中的 TTL 机制,超时自动删除。下面我通过样例进行演示。 1,基本介绍 (1)TTL 特性可以支持对 KeyedState 中过期状态数据的自动清理......
七、OperatorState 样例 1:使用 BroadcastState 实现双流连接 1,需求说明 (1)针对 BroadcastState 的使用,一个典型的应用案例就是两个流连接的场景。 假设其中一个数据流是“事件数据流”,它属于普通的数据流,里面是一些用户行为数据。 另外一个数据流是“配置数据流”,它不是普通的数据流......