flink sql的几种jion

inner join和outer join
两个流的数据因为需要关联,flink会把两个流的数据保存到状态中,默认状态永久有效,应该给状态设置过期时间,防止无限增长。
支持 join ,left join ,right join, full join
join:两个表数据关联上时才会输出数据
left join:左边来数据就会输出,如果关联不上右表的数据会用null补充,当右边能关联上的数据到来时会再次进行关联,
并输出-D表示撤回原数据,然后输出关联后的完整数据。注意左边流的状态updateType是 onReadAndWrite
right join和left join类似
full join 也类似

interval join
在一定的时间范围内进行关联,状态只保存范围内的数据

lookup join
在特定的场景下使用,当主流数据需要关联维度数据时,维度数据一般数据量较少且基本不发生变化的情况下,可以将维度数据存储在一个外部数据库系统,比如hbase,
lookupjoin实际上在主流每条数据到来时会去外部存储系统查询维度数据进行关联,flink支持对维表数据进行缓存,防止频繁的访问外部系统。

Table Function
效果类似炸裂函数,将表的一个字段用函数处理成多行,然后和原表进行关联。
SELECT order_id, res
FROM Orders
LEFT OUTER JOIN LATERAL TABLE(table_func(order_id)) t(res)
ON TRUE

temporal join
待补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值