Ja, het is mogelijk. U kunt uw Connection-object tijdelijk maken, zodat het niet geserialiseerd is, en het eenmaal per bundel maken via de startBundle
methode. Zodra alle elementen in de bundel zijn verwerkt, kan de verbinding worden gesloten via de finishBundle
methode.
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
}
}