Flink雙流Join底層原理
底層原理簡(jiǎn)介 LState:存儲左邊數據流中的數據。 RState:存儲右邊數據流中的數據。 當左邊數據流數據到達的時(shí)候會(huì )保存到LState,并且到RState中進(jìn)行Join。將Join生成的結果數據發(fā)送到下游。 右邊數據流中數據到達的時(shí)候,會(huì )保存到RState當中,并且到LState中進(jìn)行Join,然后將Join之嚄胡的結果數據發(fā)送到下游。 為了保障左右兩邊流中需要Join的數據出現在相同節點(diǎn),Flink SQL會(huì )利用Join中的on的關(guān)聯(lián)條件進(jìn)行分區,把相同關(guān)聯(lián)條件 的數據分發(fā)到同一個(gè)分區里面。 普通雙流Join 現有訂單表A和支付表B進(jìn)行關(guān)聯(lián)得到匯總表C。訂單表和支付表初始數據如下: 表A:訂單表數據 order_id timestamp 1001 2023-02-04 10:00:00 1002 2023-01-04 10:01:02 表B:支付表數據 order_id pay_money order_id pay_money 1001 80 1002 100 inner join 當A表中每一條數據到達時(shí),都會(huì )和B表中....