Flink Streaming SQL

0.核心概念

0.1 流 VS 表

流 VS 表

0.2 动态表

动态表(Dynamic Table),就是数据会随着时间变化的表,可以想象成就是数据库中⼀张被不断更新的表。
动态表是虚拟的存在着,它并不需要实际的存储来落地。

0.3 流表⼆像性

我们发现流与表有非常紧密的关系,流可以看做动态表,动态表可以看做流。我们称之为流表二象性(duality)。
流表⼆像性

1.处理流程

流->动态表->持续查询->⽣成动态表(查询结果)-> 转化成流

1.1流转换为动态表

1.1.1 追加模式

1.1.2 更新模式

1.2 动态表的查询

1.2.1 连续查询

• 流式 SQL 可以想象成连续查询(Continuous Query),连续查询会⼀直运⾏,当每个数据到来,都会持续增量地更新计算结果,从⽽产⽣另⼀个动态表。⽽这个结果动态表(也就是流)会作为另⼀个 SQL
(连续查询)的输⼊接着计算,从⽽串起整个数据流图
• 连续查询作用于动态表并又会产⽣动态表;连续查询不会终⽌并会根据其输⼊表(动态表)上的更新来更新其结果表(动态表)

1.2.3 动态表转换为流

动态表可像传统表⼀样被INSERT、UPDATE、DELETE修改。

Flink的Table API & SQL支持三种⽅式编码动态表上的更改。
动态表操作原理

2. Flink Stream SQL 编程

2.1 开发流程

2.2 TableEnvironment

2.3 Catalog

2.4 数据类型

2.5 TableSource( 数据源)

2.6 DDL

2.7 Connector & Formats

2.8 DML

2.9 Table To Stream

2.10 Sink

3. 应用案例——处理流程

3.1 DDL创建源表

3.2 DDL创建结果表

3.3设计计算逻辑并将结果输出到结果表

4.Flink Streaming SQL解析

4.1 Flink SQL 架构图

4.2 Flink SQL ⼯作机制

4.3 关系代数(表达式优化)

4.4 Abstract Syntax Tree(AST)

4.5 优化逻辑计划

4.6 物理计划

如果你使用 Maven 来构建 Flink SQL 1.17 项目,那么你需要在 `pom.xml` 文件中配置依赖。以下是一个示例 `pom.xml` 文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>flink-sql-project</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!-- Flink SQL 1.17 --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-api-java-bridge_2.12</artifactId> <version>1.17.0</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.12</artifactId> <version>1.17.0</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-clients_2.12</artifactId> <version>1.17.0</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-table-planner_2.12</artifactId> <version>1.17.0</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-kafka_2.12</artifactId> <version>1.17.0</version> </dependency> </dependencies> </project> ``` 这个 `pom.xml` 文件包含了 Flink SQL 1.17 的所有必需依赖,包括 `flink-table-api-java-bridge`、`flink-streaming-java`、`flink-clients`、`flink-table-planner` 和 `flink-connector-kafka`。你可以根据你的具体需求,增加或删除其中的依赖项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值