Zuvor hatte PCollection formatierte Ergebnisse; und ich war unter Code verwenden, um Zeilen in großer Abfrage einfügen:Einfügen von Daten in BigQuery aus Dataflow
// OPTION 1
PCollection<TableRow> formattedResults = ....
formattedResults.apply(BigQueryIO.Write.named("Write").to(tableName)
.withSchema(tableSchema)
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_APPEND));
Und alle Zeilen wurden direkt in BigQuery eingesetzt, die alle gut bis hier. Aber jetzt haben damit begonnen, ich den Tabellennamen und die entsprechende Zeile dynamisch zu identifizieren, so PCollection erschaffe wie folgt: (String wird der Tabellenname sein und dann als Wert seiner Reihe)
PCollection<KV<String, TableRow>> tableRowMap // OPTION 2
Auch ich schaffe Gruppe von Zeilen das in derselben Tabelle gehen wird als:
PCollection<KV<String, Iterable<TableRow>>> groupedRows //OPTION 3
den Schlüssel (String) ist der Tabellenname und BQ-Wert ist die Liste von Zeilen in BQ eingefügt werden.
Mit Option 1 konnte ich einfach Zeilen in BQ einfügen, die den oben gezeigten Code verwenden, aber derselbe Code kann nicht mit OPTION 2 oder OPTION 3 verwendet werden, da in diesem Fall mein Tabellenname Schlüssel in map ist. Gibt es eine Möglichkeit, Zeilen in Tabelle mit OPTION 2 oder OPTION 3 einzufügen. Jeder Link oder Codebeispiel wird große Hilfe sein.