一样的吗?就是Flink中的Lookup join和Temporal join 的语法

news/2025/11/20 17:22:05/文章来源:https://www.cnblogs.com/yangykaifa/p/19247861

核心结论

表面语法相似(均用到 FOR SYSTEM_TIME AS OF),但本质逻辑、适用场景和维表特性完全不同—— 形似神异,核心区别在于维表的 “版本化特性” 和 FOR SYSTEM_TIME AS OF 的实际作用。

一、语法 “形似”:表面都用 FOR SYSTEM_TIME AS OF

两者在 SQL 中确实共享类似的语法结构,均通过 FOR SYSTEM_TIME AS OF 关联流与维表,导致视觉上相似:

1. Lookup Join 典型语法

SELECT ...
FROM 流表 t1
LEFT JOIN 维表 t2 FOR SYSTEM_TIME AS OF t1.proc_time  -- 通常关联处理时间ON t1.key = t2.key;

2. Temporal Join 典型语法

-- 版本化时态 Join(事件时间)
SELECT ...
FROM 流表 t1
LEFT JOIN 维表 t2 FOR SYSTEM_TIME AS OF t1.event_time  -- 关联流的事件时间ON t1.key = t2.key;
-- 处理时间时态 Join
SELECT ...
FROM 流表 t1
LEFT JOIN 维表 t2 FOR SYSTEM_TIME AS OF t1.proc_time  -- 关联流的处理时间ON t1.key = t2.key;

二、本质 “神异”:5 大核心区别(含语法作用差异)

对比维度Lookup Join(查找 Join)Temporal Join(时态 Join)
核心目标流主动查询静态 / 缓慢变化的维表,补充静态属性(如商品名称、IP 归属地)。流关联维表的特定版本(历史版本或处理时最新版本),解决 “维表更新后回溯历史状态” 问题。
维表特性维表是静态 / 缓慢变化的(如 MySQL 商品表、HBase IP 表),无版本化管理,仅需 “最新或缓存数据”。维表是版本化的(Temporal Table),需记录数据的 “生效时间范围”(事件时间)或 “实时更新”(处理时间)。
FOR SYSTEM_TIME AS OF 的作用仅用于对齐处理时间,避免 “流数据处理时维表正在刷新” 导致的并发问题(如脏读),无 “版本回溯” 意义。核心作用是指定维表版本的时间基准:- 事件时间:获取 “流事件发生时刻” 的维表历史版本;- 处理时间:获取 “流数据处理时刻” 的维表最新版本
维表数据来源维表通常是外部存储系统(如 MySQL、HBase、文件),流通过 “查询” 获取数据(可缓存)。维表通常是流或版本化表(如 Kafka CDC 流、带生效时间的 Hive 表),需持续维护版本历史。
状态管理仅缓存维表数据(可选,通过 lookup.cache 配置),流数据不存状态;状态大小由缓存策略控制需保存维表的版本历史状态(事件时间)或最新版本状态(处理时间);状态大小由版本数量控制。
典型场景订单流关联 MySQL 商品表获取商品名称(商品信息一天更新一次)。订单流关联商品价格表获取 “下单时刻” 的历史价格(价格随促销实时变化)。

三、关键区分:从 “维表是否版本化” 判断

最核心的判断标准是维表是否需要 “版本化管理”

  • 若维表是静态 / 缓慢变化,无需记录历史版本(如用户基础信息、商品分类)→ 用 Lookup Join
  • 若维表是动态变化,需关联特定时间版本(如商品价格、用户等级的历史状态)→ 用 Temporal Join

四、语法细节差异示例(直观对比)

1. Lookup Join:维表无版本化,仅配置缓存

-- 维表:MySQL商品表(静态,无时间属性)
CREATE TEMPORARY TABLE Product_Lookup (goods_id INT,goods_name STRING,category STRING,PRIMARY KEY (goods_id) NOT ENFORCED  -- 仅用于关联,无版本意义
) WITH ('connector' = 'jdbc','url' = 'jdbc:mysql://xxx:3306/test','table-name' = 'product','lookup.cache.ttl' = '3600000'  -- 缓存1小时,无需版本管理
);
-- Lookup Join:关联处理时间避免并发问题
SELECT o.order_id, o.goods_id, p.goods_name
FROM OrderStream o
LEFT JOIN Product_Lookup FOR SYSTEM_TIME AS OF o.proc_time pON o.goods_id = p.goods_id;

2. Temporal Join:维表版本化,需时间属性

-- 维表:版本化商品价格表(事件时间,记录生效/失效时间)
CREATE TEMPORARY TABLE Product_Temporal (goods_id INT,price DECIMAL(10,2),start_time TIMESTAMP(3),  -- 价格生效时间end_time TIMESTAMP(3),    -- 价格失效时间(NULL表示当前)WATERMARK FOR start_time AS start_time - INTERVAL '1' SECOND,  -- 事件时间水印PRIMARY KEY (goods_id) NOT ENFORCED  -- 版本化主键
) WITH ('connector' = 'kafka-cdc',  -- 从CDC流获取版本变化'topic' = 'product_price_cdc','properties.bootstrap.servers' = 'xxx:9092','format' = 'debezium-json'
);
-- Temporal Join:关联订单事件时间,获取历史价格
SELECT o.order_id, o.goods_id, o.order_time, p.price
FROM OrderStream o
LEFT JOIN Product_Temporal FOR SYSTEM_TIME AS OF o.order_time pON o.goods_id = p.goods_id;

总结

两者语法的相似性是 “表面巧合”,核心差异在于维表特性和 FOR SYSTEM_TIME AS OF 的作用:Lookup Join 是 “流查静态维表”,语法仅为解决并发;Temporal Join 是 “流关联维表版本”,语法是版本选择的核心

推荐阅读

Flink的checkpoint interval与mini-batch什么区别?

Flink重启策略有啥用

Spark的shuffle类型与对比

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/971218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机上redhat7.2安装oracle 11g rac 集群

在 Red Hat Enterprise Linux 7.2 虚拟机上安装 Oracle 11g RAC(Real Application Clusters)是一个复杂的过程,涉及环境准备、存储配置、集群软件安装、数据库安装等多个关键步骤。以下是详细的分步指南,确保每一步…

deepseek+豆包豆包推广渠道商推荐,TOB GEO获客推广服务商推荐榜单

在人工智能技术飞速发展的当下,AI平台已成为TOB企业获客的重要阵地,DeepSeek、豆包等主流AI平台凭借庞大的用户基数和精准的需求匹配能力,成为企业推广的核心场景。选择专业的推广渠道商,能帮助企业在AI生态中高效…

2025年深圳会议室麦克风公司权威推荐榜单:无线会议话筒/桌面会议话筒/无线手拉手会议话筒源头公司精选

在数字化转型浪潮中,清晰的语音沟通已成为企业会议效率的核心要素。 据行业报告统计,2025年中国会议室音频设备市场规模同比增长28.5%,表现出强劲增长态势。智能会议系统在深圳地区的渗透率预计达到65.8%,较2023年…

2025 最新推荐!塑料板材设备厂家排行榜单:覆盖 PP/ABS/PE/PC 全系列生产线ABS 塑料板材设备/PE 塑料板材设备/PC 塑料板材设备公司推荐

引言 在全球塑料加工行业向高效低碳、精密智造转型的浪潮下,塑料板材设备的技术成熟度、环保合规性与定制适配能力成为企业采购的核心决策依据。据国际塑料机械制造商协会(PMMIA)最新测评数据显示,当前全球塑料板材…

20232418 2025-2026-1 《网络与系统攻防技术》实验六实验报告

20232418 2025-2026-1 《网络与系统攻防技术》实验六实验报告 1.实验内容 1.1发现Metasploitable2靶机,掌握metasploit、nmap的用法。 1.2利用Vsftpd源码包后门漏洞。 1.3利用SambaMS-RPC Shell命令注入漏洞。 1.4利用…

恒利泰H3-MABA-011118国产替代

恒利泰H3-MABA-011118国产替代MABA-011118,5 MHz-10 GHz 全频段相位差≤1,插损超低,军工级可靠性,交期短! 测试、航天人、5G 工程师们,一颗器件搞定 HF~X 波段,BOM 直接瘦身30%,成本立省40%!

oeasy玩py106 列表_删除_del_索引元素_切片

oeasy玩py106 列表_删除_del_索引元素_切片$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");列表 - 切片 - slice - 删除上次研究了 回环文绕圈读文字 重叠 …

【2025/11】GitHub 本月热度排名前十的开源 Java 项目

【2025/11】GitHub 本月热度排名前十的开源 Java 项目本月 GitHub 热度排名前十的开源 Java 项目介绍 在众多开源项目中,Java 语言依然占据重要地位。以下是 2025 年 11 月 GitHub 上热度排名前十的 Java 开源项目简介…

真的猛士: 直视体重计上的数字, 直面全账户上的余额

离开职场以后,难得有空闲看看一些书籍,最近看完了《认知觉醒》这本书,说说一些感悟。 一、《认知觉醒》开篇就抛出一个扎心的事实:我们的大脑天生追求舒适、逃避痛苦。 书中指出,人类大脑由三部分构成: 本能脑(…

“规则引擎”还是“AI驱动”?客服机器人技术路线的深度对比与选型指南

面对客服机器人技术选型,规则引擎与AI驱动存在本质差异:前者依赖预设规则,后者如合力亿捷智能客服基于场景化模型与业务记忆,具备自主进化能力。数据显示,AI驱动可将意图识别准确率提升至91%以上,问题解决率达70…

2025年工业啤酒设备厂家权威推荐榜单:啤酒设备厂家/精酿啤酒设备厂家/啤酒设备源头厂家精选

从糖化到灌装,一套性能卓越的工业啤酒设备是保障啤酒风味与生产效率的关键。 在工业啤酒生产领域,设备的性能与稳定性直接关系到产品品质和企业效益。据行业报告显示,全球商用啤酒酿造设备市场正保持稳定增长,中国…

吴恩达深度学习课程二: 改善深层神经网络 第三周:超参数调整,批量标准化和编程框架(五)框架演示

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

Pandoc Markdown 转 Word

📝 Pandoc Markdown 转 Word 0. 准备工作安装 Pandoc:下载地址 适用场景:将 LLM 生成的 Markdown(含 LaTeX 公式、表格、代码)无损转换为可编辑的 Word 文档。1. 基础模式:直接转换 如果不关心字体、行距等排版…

探索性测试:理论根基、实践精髓与未来趋势——精细解析核心原理、实操策略与多元化应用影响

引言 在当今信息化社会,软件已成为支撑各行各业高效运作的关键载体,其质量直接影响到用户体验、业务运行乃至企业竞争力。随着软件复杂度的不断提升以及市场对快速迭代和高质量交付的需求日益迫切,传统的线性、预定…

184天 横向移动

工作太忙了,都没时间学习NTLM攻击

P11958 「ZHQOI R1」划分

你发现一个神秘结论:将序列分成若干不相交段,取段头段尾乘积和一定能够得到答案。于是得到转移式,使用李超即可通过。 一般分段题要么考虑 DS 大力维护,要么考虑斜优,单调性,凸包,要么就是考虑这种神秘结论(通…

Java初尝试:电梯调度迭代开发

前言: 在本学期,我第一次接触到Java这门面向对象的编程语言,此前我已经持续使用了两年多的面向过程的C语言编程,并一直认为掌握好C语言这一门就能解决大部分的问题,但随着这几次从用Java语言实现的电梯调度程序再…

推荐几家烘箱厂家:国内优质供应商实力盘点

烘箱作为工业生产、科研实验等领域的关键设备,其性能稳定性、温度控制精度直接影响生产效率与实验结果。选择技术成熟、服务完善的厂家,是保障设备长期可靠运行的基础。以下为大家推荐几家在烘箱及相关设备领域表现突…

2025年 11月 上海网站建设与小程序一体化搭建方案 甄选推荐

(一)前期需求诊断:锚定上海产业适配方向 业务场景聚焦:先明确核心业务属性,若为跨境电商企业,需锁定多语种切换、跨境支付接口、海外仓实时查询等功能需求;陆家嘴金融科技企业则重点规划资质展示模块、数据加密系统…

2025 年湖南无人机培训机构精选:专业资质、实战教学与就业保障全覆盖!

2025 年湖南无人机培训机构精选:专业资质、实战教学与就业保障全覆盖! 随着湖南省低空经济政策的持续推进,无人机技术在农业植保、电力巡检、地理测绘、应急救援等领域的应用愈发广泛,市场对具备专业资质的无人机飞…