Beam SQL 擴展:Join

Beam SQL 中支援的 JOIN 型別

Beam SQL 中不支援的 JOIN 型別

Join 的情境可以分為 3 種情況

  1. 有界輸入 JOIN 有界輸入
  2. 無界輸入 JOIN 無界輸入
  3. 無界輸入 JOIN 有界輸入

有界 JOIN 有界

使用標準 Join 實作。一個輸入的所有元素會與另一個輸入的所有元素匹配。由於兩個輸入都是有界的,因此不涉及視窗化或觸發。

無界 JOIN 無界

使用標準 Join 實作。一個輸入的所有元素會與另一個輸入的所有元素匹配。

視窗化和觸發

當 Join 無界輸入時,必須滿足以下屬性

這表示輸入是按視窗進行 Join。也就是說,當觸發器觸發時 (僅一次),然後在兩個輸入中目前視窗中的所有元素上執行 Join。這可以推論將會產生什麼樣的輸出。

注意:GroupByKeys 類似,JOIN 將使用 Trigger.continuationTrigger() 更新觸發器。輸入的視窗化策略的其他方面保持不變。

無界 JOIN 有界

對於這種 JOIN 型別,實作會將有界輸入視為 side-input。這表示視窗/觸發是從上游繼承的。