动态BigQuery架构/表的侧输入

时间:2017-05-23 22:11:57

标签: apache-beam

我想写一个PCollection到多个BigQuery表,根据PCollection 不同模式的内容使用不同的表,其内容通过侧面输入。

我在DynamicDestinations的文档中注意到了这一点:

  

DynamicDestinations的实例也可以使用sideInput(PCollectionView)使用侧输入。侧输入必须存在于getSideInputs()中。在全局窗口中访问侧输入,因此它们必须全局窗口化。

如何使用Apache Beam BigQueryIO API的v2.0.0实现这一点?

1 个答案:

答案 0 :(得分:1)

假设你有一个像

那样的侧面输入
// Must be globally windowed to work with BigQueryIO
PCollectionView<MyAuxData> myView = ...

然后你可以在你的DynamicDestinations中访问它:

new DynamicDestinations<MyElement, MyDestination>() {

  @Override
  protected List<PCollectionView<?>> getSideInputs() {
    return ImmutableLIst.of(myView);
  }

  @Override
  public TableSchema getSchema(MyDestination dest) {
    MyAuxData = sideInput(myView);
    ...
  }

  ...
}

等等。