はい、可能です。 Connectionオブジェクトを一時的にして、シリアル化されないようにし、startBundle
を介してバンドルごとに1回作成することができます。 方法。バンドル内のすべての要素が処理されると、finishBundle
を介して接続を閉じることができます 方法。
class MyDoFn extends DoFn<X, Y> {
private transient Connection jdbc;
@Setup
public void setup(Context c) {
jdbc = // Create connection
}
@ProcessElement
public void processElement(ProcessContext c) {
// query database
}
@Teardown
public void tearDown(Context c) {
// close connection
}
}