【实战-05】 flinksql look up join

摘要

look up join 能做什么? 不饶关子直接说答案, look up join 就是 广播。 重要是事情说三遍,广播。flinksql中的look up join 就类似于flinks flink Datastream api中的广播的概念,但是又不完全相同,对于初次访问的数据会加入缓存, 一定时间未访问到的则会从缓存中去除。而广播则是直接广播到每个exxcotor.

比如我们有一张订单表orders, 那么假设我们在进行flink计算的时候想获取该订单的相关的用户数据。 此时可以将用户数据用look up join 加载进来。
look up join 又称维表 在DataStream 中又称伟广播, 理解了这些就比较简单了。

缺点

不适合大量数据的 look up join, 因为会占用过多内存。 在业内很多人喜欢用hbase做缓存插件。也可以用 mysql 等其他外部存储系统,在任务启动的时候 外部的维表会被加载到任务内存中

语法

左表 要设置proress Time , 右表为 缓存表

sql 复制代码
create TEMPORARY table orders(
   `order_id` VARCHAR,                                                
   `order_info` VARCHAR,
   `user_id` VARCHAR,
   process_time AS PROCTIME()  # 这句语法是严格要求的
)with(
    'connector' = 'kafka',                                       
 	'topic' = 'topic-01;topic-02',                                   
 	'properties.bootstrap.servers' = 'xxx:9092,yyy:9092',
 	'properties.group.id' = 'test',
 	'scan.startup.mode' = 'timestamp',
   'scan.startup.timestamp-millis' = '1680883200000',
 	'format' = 'raw'
 );
create TEMPORARY table users(     
	`user_id` VARCHAR,                                          
	`user_name` VARCHAR
)with(
    # 其他外部系统,省略
 );
 
SELECT 
	o.order_id, 
	o.order_info,
	u.user_id,
	u.user_name
FROM orders AS o
left JOIN users FOR SYSTEM_TIME AS OF o.proc_time AS u # 这句语法是严格要求的
ON o.user_id= u.user_id
where ...# 省略where语句
;
# 注意: 一般都是用left  join 
相关推荐
醉颜凉17 分钟前
Elasticsearch底层原理:文档更新与删除完整执行流程深度剖析
大数据·elasticsearch·jenkins
大大大大晴天38 分钟前
大数据平台为什么必须走向云原生:从资源孤岛到弹性数据基础设施
大数据·云原生
小白说大模型1 小时前
AI驱动的个性化学习路径:知识图谱与知识点关联的存储与推理
大数据·人工智能·学习·mysql·机器学习·prompt·知识图谱
howdoyoudo2026062 小时前
AI审计手记 #01(数据补全版):107小时、17,600次操作——OpenAI越狱案完整攻击链量化分析
大数据·人工智能·安全·ai·语言模型
hrrrrxeeeee2 小时前
不同基础怎么报考 CAIE 认证|Level I 与 Level II 报考指南
大数据·人工智能·产品经理
Wang's Blog2 小时前
PostgreSQL笔记28: PostgreSQL ACID 特性与实现机制深度解析
大数据·笔记·postgresql
湖南源点调研咨询3 小时前
湖南(源点)市场调研 服务标准化建立指南与切入方式(中篇)
大数据·产品运营·用户运营·用户体验
AI_Auto4 小时前
中小企业数字化转型指南 | 拆解中小企业数字化四大转型特征
大数据·人工智能·制造
资深低代码开发平台专家5 小时前
2026企业级AI编程平台厂推荐:行业趋势、评估维度与主流品牌对比解析
大数据·人工智能·ai编程
小白说大模型5 小时前
Spring AI 框架中集成 MCP 的完整指南:从服务端到客户端的全流程实践
大数据·数据库·人工智能·安全·spring·chatgpt·开源