Java 我的数据流模板不会在BigQuery之前启动步骤
我有一个用ApacheBeam创建的代码,它读取一个csv文件并将其插入BigQuery。在管道中,我执行三个步骤(应用):1。阅读csv,2。将文本转换为TableRow和3。插入到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)进行注释,它在那里执行前面的步骤。我还
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表来确认管道是否读取和写入了行。如果不是这样,请分享您在步骤中观察到的错误,您可以参考以查看日志。