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

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

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

08.Table API和Flink SQL动态表和持续查询

[TOC]前言SQL 和关系代数在设计时并未考虑流数据。因此,在关系代数(和 SQL)之间几乎没有概念上的差异。本文将介绍 Flink 如何在无界数据集上实现与数据库引擎在有界数据上的处理具有相同的语义。一、DataStream 上的关系查询下表比较了传统的关系代数和流处理与输入数据、执行和输出结果的关系。 关系代数(表)/SQL流处理处理的数据对象字段元祖的有界集合字段元祖的无限序列查询(...

Java 2022-02-26 PM 1342次 0条

07.将表转换成DataStream

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

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

06.Table API输出表

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

大数据 2022-02-24 PM 1067次 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 1002次 0条

03.Flink SQL之在Catalog中注册表

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

大数据 2022-02-21 PM 1515次 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 1086次 0条

01.Table API和Flink SQL介绍

[TOC]前言前面我们介绍过,Flink的API是分层的,而Table API与SQL就位于最顶层。也就是说Table API和SQL是Flink中封装程度最高的API。Flink 自从 0.9 版本开始支持 Table & SQL 功能一直处于完善开发中,且在不断进行迭代。一、概述​ Flink 本身是批流统一的处理框架,所以 Table API 和 SQL,就是批流统一的上...

大数据 2022-02-17 PM 943次 0条

35.Flink和Kafka实现端到端exactly-once语义详解

[TOC]一、概念我们知道,端到端的状态一致性的实现,需要每一个组件都实现,对于 Flink + Kafka 的数据管道系统(Kafka 进、Kafka 出)而言,各组件怎样保证 exactly-once 语义呢?内部:利用 checkpoint 机制,把状态存盘,发生故障的时候可以恢复, 保证内部的状态一致性;source:kafka consumer 作为 source,可以将偏移量保存...

大数据 2022-02-16 PM 1060次 0条