Beam SQL 扩展:联接

Beam SQL 中支持的联接类型

Beam SQL 中不支持的联接类型

联接场景可以分为三种情况

  1. 有界输入联接有界输入
  2. 无界输入联接无界输入
  3. 无界输入联接有界输入

有界联接有界

使用标准联接实现。一个输入中的所有元素都与另一个输入中的所有元素匹配。由于两个输入都是有界的,因此不涉及窗口化或触发。

无界联接无界

使用标准联接实现。一个输入中的所有元素都与另一个输入中的所有元素匹配。

窗口化和触发

联接无界输入时,必须满足以下属性

这意味着输入在每个窗口进行联接。也就是说,当触发器触发(仅一次)时,就会在两个输入的当前窗口中的所有元素上执行联接。这允许对将要产生的输出类型进行推理。

注意:类似于 GroupByKeysJOIN 将使用 Trigger.continuationTrigger() 更新触发器。输入窗口化策略的其他方面保持不变。

无界联接有界

对于这种类型的联接,有界输入被实现视为侧输入。这意味着窗口/触发器是从上游继承的。