问题:BigQueryIO每输入一行创建一个文件,对吗?

问题描述 投票:0回答:1

我是Apache Beam的新手,我正在开发一个管道来从JDBCIO获取行并将其发送到BigQueryIO。我正在使用withAvroFormatFunction将行转换为avro文件,但它正在为JDBCIO返回的每一行创建一个新文件。带有json文件的withFormatFunction也是一样。

在DirectRunner上本地运行非常慢,因为它会将大量文件上传到Google Storage。这种方法是否适合扩展Google Dataflow?有没有更好的方法来处理它?

谢谢

google-cloud-dataflow apache-beam
1个回答
0
投票

在BigqueryIO中,有一个选项可以指定withNumFileShards,该选项控制使用Bigquery加载作业时生成的文件数。

documentation开始

Control how many file shards are written when using BigQuery load jobs. Applicable only when also setting withTriggeringFrequency(org.joda.time.Duration).

您可以通过将值设置为1来测试您的进程,以查看是否仅创建了1个大文件。

© www.soinside.com 2019 - 2024. All rights reserved.