Java 我的数据流模板不会在BigQuery之前启动步骤

Java 我的数据流模板不会在BigQuery之前启动步骤,java,google-bigquery,apache-beam,dataflow,Java,Google Bigquery,Apache Beam,Dataflow,我有一个用ApacheBeam创建的代码,它读取一个csv文件并将其插入BigQuery。在管道中,我执行三个步骤(应用):1。阅读csv,2。将文本转换为TableRow和3。插入到BigQuery(BigQueryIO.writeTableRow()) 我创建了模板,但当我要执行它(使用dataflow runner)时,它只执行BigQuery步骤。不要开始读取csv或转换为TableRow的步骤 会发生什么 我试着对BigQuery块(apply)进行注释,它在那里执行前面的步骤。我还

我有一个用ApacheBeam创建的代码,它读取一个csv文件并将其插入BigQuery。在管道中,我执行三个步骤(应用):1。阅读csv,2。将文本转换为TableRow和3。插入到BigQuery(
BigQueryIO.writeTableRow()

我创建了模板,但当我要执行它(使用dataflow runner)时,它只执行BigQuery步骤。不要开始读取csv或转换为TableRow的步骤

会发生什么

我试着对BigQuery块(apply)进行注释,它在那里执行前面的步骤。我还尝试并行生成一个管道,并运行它。当我将管道链接到BigQuery的步骤(应用)时,问题就出现了

public static void main(String[] args) throws Throwable {

     String sourceFilePath = "gs://dgomez_test/input.csv";
     String tempLocationPath = "gs://dgomez_test/tmp";

     PipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation().create();
     options.setTempLocation(tempLocationPath);
     options.setJobName("csvtobq");
     Pipeline p = Pipeline.create(options);

     p.apply("read csv", TextIO.read().from(sourceFilePath))
      .apply("string to tablerow", ParDo.of(new FormatForBigquery()));
      .apply("write to bigquery",
           BigQueryIO.writeTableRows().to(TABLE)
               .withSchema(FormatForBigquery.getSchema())
               .withCreateDisposition(BigQueryIO.Write.CreateDisposition.CREATE_IF_NEEDED)
               .withWriteDisposition(BigQueryIO.Write.WriteDisposition.WRITE_TRUNCATE));

     p.run();
}

检查堆栈驱动程序日志,我也遇到过类似的情况,有时会出现错误,它们只显示在堆栈驱动程序中,而不显示在数据流的日志部分。数据流UI可能只是延迟了一段时间来报告步骤的正确状态。您可以通过查看BigQuery表来确认管道是否读取和写入了行。如果不是这样,请分享您在步骤中观察到的错误,您可以参考以查看日志。检查堆栈驱动程序日志,我有类似的情况,有时会出现错误,它们仅显示在堆栈驱动程序中,数据流UI可能只有一个延迟来报告步骤的正确状态。您可以通过查看BigQuery表来确认管道是否读取和写入了行。如果不是这样,请分享您在步骤中观察到的错误,您可以参考以查看日志。