12.Table API和Flink SQL之函数

[TOC]前言​ Flink Table 和 SQL 内置了很多 SQL 中支持的函数;如果有无法满足的需要,则可以实现用户自定义的函数(UDF)来解决。一、系统内置函数​ Flink Table API 和 SQL 为用户提供了一组用于数据转换的内置函数。SQL 中支持的很多函数,Table API 和 SQL 都已经做了实现,其它还在快速开发扩展中。以下是一些...

大数据 2022-03-05 PM 1010次 0条

11.Flink之SQL中窗口的定义

前言我们已经了解了在 Table API 里 window 的调用方式,同样,我们也可以在 SQL 中直接加入窗口的定义和使用。一、Group Windows​ Group Windows 在 SQL 查询的 Group BY 子句中定义。与使用常规 GROUP BY 子句的查询一样,使用 GROUP BY 子句的查询会计算每个组的单个结果行。SQL 支持以下 Group 窗口...

大数据 2022-03-04 PM 1326次 0条

10.Table API和Flink SQL之窗口操作

[TOC]前言​ 时间语义,要配合窗口操作才能发挥作用。最主要的用途,当然就是开窗口、根据时间段做计算了。下面我们就来看看 Table API 和 SQL 中,怎么利用时间字段做窗口操作。在 Table API 和 SQL 中,主要有两种窗口:Group Windows 和 Over Windows数据准备sensor.txtsensor_1,1547718199,35.8 s...

大数据 2022-03-03 PM 1169次 0条

09.Table API和Flink SQL之表的时间特性

一、概述​ 基于时间的操作(比如 Table API 和 SQL 中窗口操作),需要定义相关的时间语义和时间数据来源的信息。所以,Table可以提供一个逻辑上的时间字段,用于在表处理程序中,指示时间和访问相应的时间戳。​ 时间属性,可以是每个表 schema 的一部分。一旦定义了时间属性,它就可以作为一个字段引用,并且可以在基于时间的操作中使用。​ ...

大数据 2022-02-28 PM 1061次 0条

07.将表转换成DataStream

一、概念​ 表可以转换为 DataStream 或 DataSet。这样,自定义流处理或批处理程序就可以继续在Table API 或 SQL 查询的结果上运行了。​ 将表转换为 DataStream 或 DataSet 时,需要指定生成的数据类型,即要将表的每一行转换成的数据类型。通常,最方便的转换类型就是Row。当然,因为结果的所有字段类型都是明确的,我们也经常...

大数据 2022-02-25 PM 991次 0条

06.Table API输出表

[TOC]一、概述​ 表的输出,是通过将数据写入 TableSink 来实现的。TableSink 是一个通用接口,可以支持不同的文件格式、存储数据库和消息队列。​ 具体实现,输出表最直接的方法,就是通过 Table.insertInto() 方法将一个 Table 写入注册过的 TableSink中。二、输出到文件import org.apache.flink....

大数据 2022-02-24 PM 1066次 0条

05.将DataStream转换成表

[TOC]一、概述​ Flink 允许我们把 Table 和 DataStream 做转换:我们可以基于一个 DataStream,先流式地读取数据源,然后 map 成样例类,再把它转成 Table。Table 的列字段(column fields),就是样例类里的字段,这样就不用再麻烦地定义 schema 了。二、代码表达代码中实现非常简单,直接用 tableEnv.from...

大数据 2022-02-23 PM 874次 0条

04.Table API和Flink SQL表的查询

[TOC]一、表的查询利用外部系统的连接器connector,我们可以读写数据,并在环境的Catalog中注册表。接下来就可以对表做查询转换了。Flink给我们提供了两种查询方式:Table API和 SQL。二、Table API的调用​ Table API 是集成在 Scala 和 Java 语言内的查询 API。与 SQL 不同,Table API 的查询不会用字符串表示...

大数据 2022-02-22 PM 1000次 0条

03.Flink SQL之在Catalog中注册表

[TOC]一、表(Table)的概念TableEnvironment 可以注册目录 Catalog,并可以基于 Catalog 注册表。它会维护一个 Catalog-Table 表之间的map。表(Table)是由一个“标识符”来指定的,由三部分组成:Catalog 名、数据库(database)名和对象名(表名)。如果没有指定目录或数据库,就使用当前的默认值。表可以是常规的(Table,表...

大数据 2022-02-21 PM 1513次 0条

02.Table API和Flink SQL程序的结构

[TOC]前言Table API和SQL两者结合非常紧密,它们的API与关系型数据库中查询非常相似,本质上它们都依赖于一个像数据表的结构:Table。在具体执行层面,Flink将Table API或SQL语句使用一个名为执行计划器(Planner)的组件将关系型查询转换为可执行的Flink作业,并对作业进行一些优化。一、基本程序结构Table API 和 SQL 集成在同一套API中。这套 ...

大数据 2022-02-18 PM 1082次 0条