我想写一个PCollection
到多个BigQuery表,根据PCollection
和不同模式的内容使用不同的表,其内容通过侧面输入。
我在DynamicDestinations
的文档中注意到了这一点:
DynamicDestinations的实例也可以使用sideInput(PCollectionView)使用侧输入。侧输入必须存在于getSideInputs()中。在全局窗口中访问侧输入,因此它们必须全局窗口化。
如何使用Apache Beam BigQueryIO API的v2.0.0实现这一点?
答案 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);
...
}
...
}
等等。