基于 FLINK SQL 的实时数据打宽
Posted 宝哥大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 FLINK SQL 的实时数据打宽相关的知识,希望对你有一定的参考价值。
文章目录
一、数据打宽
1.1、ETL架构
1.2、数据打宽
1.3、利⽤ Flink SQL 打宽实时数据
二、双流 Join & 区间 Join
2.1、双流 Join (Regular Join)
SELECT i.*, c.*
FROM impressions as i JOIN clicks as c
ON i.id = c.impression_id
- 支持 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
- 语法, 语义 均和传统批 SQL 一致
- 左右流都会触发结果更新
- 状态持续增长,一般结合 state TTL 使用
2.2、区间 Join (Interval Join)
- 支持 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
- 左右流都会触发结果更新
- State 自动清理,根据时间区间保留数据
- 输出流保留时间属性
三、时态表 Join
3.1、时态 (Temporal)表 VS 临时(Temporary)表
3.2、时态(Temporal )表 概念
3.3、时态表 Join
- 支持 INNER JOIN, LEFT JOIN
- 只有左流都会触发结果更新
- 输出流保留时间属性
3.3.1、Temporal Join Lookup DB
- 具备 lookup 的能力的外部系统
- 典型的 connector 有 HBase,JDBC
- 自定义connector需实现 LookupTableSource
- 支持 Async IO 和 Cache 提升lookup效率
另外社区即将支持 HBase Async IO lookup https://issues.apache.org/jira/browse/FLINK-20460
3.3.2、Flink 版本表
3.3.3、Temporal Join 版本表
3.3.4、Temporal Join 版本表(versioned view)
3.3.5、Temporal Join 版本表(upsert-kafka)
3.3.6、Temporal Join Hive
3.3.6.1、Temporal Join (最新 Hive 分区)
3.3.6.2、Temporal Join (最新 Hive 表)
3.3.6.3、Temporal Join (最新分区 VS 最新表)
四、案例
4.1、Temporal Join Versioned Table
关注我的公众号【宝哥大数据】, 更多大数据干货
参考:
https://www.bilibili.com/video/BV1Ap4y1h7j1?from=search&seid=16517504794128610121&spm_id_from=333.337.0.0
完整课程及PPT下载:https://flink-learning.org.cn/activity/detail/1e05a08375cb70d1d6cdc6886c47f03d
以上是关于基于 FLINK SQL 的实时数据打宽的主要内容,如果未能解决你的问题,请参考以下文章