Я пытаюсь понять жизненный цикл преобразований в конвейере.
У меня есть конвейер с несколькими преобразованиями.
Pipeline p = Pipeline.create(options);
p.apply(TextIO.Read.named("ReadLines").from(inputFile))
.apply(new ReadData())
.apply(new Match())
.apply(new Record())
.apply(BigQueryIO.Write
.to(tableRef)
.withSchema(getSchema())
.withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
.withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE));
Внутри каждого из этих преобразований находится один DoFn. Должен ли быть завершен весь пакет, который обрабатывает узел, прежде чем переходить к следующему преобразованию?
Что я наблюдаю, по крайней мере, с DirectPipelineRunner, так это то, что весь набор данных считывается до запуска преобразования сопоставления.