Google bigquery 数据流-从BigQuery分区表读取

Google bigquery 数据流-从BigQuery分区表读取,google-bigquery,google-cloud-dataflow,Google Bigquery,Google Cloud Dataflow,使用DataFlow SDK 2.x,我想从BigQuery分区表中读取数据 到目前为止,我找到的唯一选项是使用BigQueryIO.Read.fromQuery(字符串查询)方法和querySELECT*FROM表,其中_PARTITIONTIME='yyyy-MM-dd' 有没有其他方法可以从数据流中的分区BigQuery表中读取数据?老实说,有更好的方法。有两种方法可以提高性能,一种是查看BigQueryAPI 所以回想一下 Select * from `tableName`

使用DataFlow SDK 2.x,我想从BigQuery分区表中读取数据

到目前为止,我找到的唯一选项是使用
BigQueryIO.Read.fromQuery(字符串查询)
方法和query
SELECT*FROM表,其中_PARTITIONTIME='yyyy-MM-dd'


有没有其他方法可以从数据流中的分区BigQuery表中读取数据?

老实说,有更好的方法。有两种方法可以提高性能,一种是查看BigQueryAPI

所以回想一下

    Select * from `tableName` 
对于您的数据库来说,这是一项昂贵的操作。为了加快读取时间,您可以改为:

    Select <field1>, <field2>, ...., from `tableName`
Select,…,from`tableName`
当然,在许多情况下,列出所有字段名是不可能的,但是您将获得大约两倍的速度

但是你可以按照这个例子来做。这也将给你大约两倍的速度,以及更方便


如果您需要提供链接的编码示例,请告诉我,干杯

这是正确的方法。如果您使用普通读取,它会将整个表读取到您的管道中,而不管它是否是分区表。@GrahamPolley,谢谢您的回答。您是否计划为查询分区表添加方法级支持?您还可以使用分区装饰器,从“table$yyyyMMdd”中读取,我相信它应该可以工作。据我所知,目前还没有计划增加更明确的支持;如果您需要,请随时在user@maillist上提交JIRA或在其上发布。@jkff这种行为有记录吗?在感谢您的回答中有记录。请您详细说明为什么使用BigQueryAPI比使用BigQueryIO快。请阅读?对不起,我的错误。我误读了这个问题,把BigQueryIO错当成了BigQuery。也就是说,您的BigQueryIO使用下面的BigQueryAPI,正如我从中看到的那样。因此,BigQueryIO的速度与BigQuery相同,或者更快,这取决于分配给读取表的工作进程的数量。因此,BigQueryIO更快,但读取的数据作为PCollection传递。但是,我建议命名列更好