当你在数据流中使用`fromTable` vs`fromQuery(“SELECT * ...”)`时,`BigQueryIO`有区别吗?

时间:2018-01-28 12:26:04

标签: google-bigquery google-cloud-dataflow dataflow

当您需要在数据流作业中读取bigquery中的一个或多个表中的所有数据时,我会说有两种方法。第一种方法是使用fromfromQuery来读取有问题的表,第二种方法是使用read来指定查询所有数据的查询表。所以我的问题是:

  • 使用其中一种产品是否有任何成本或性能优势?

我在文档中没有找到任何关于此的内容,但我真的很想知道。我想可能BigQuery可能更快,因为您不需要运行扫描数据的查询,这意味着它更类似于BigQueryIO.read(...).from(tableName) UI中的预览功能。如果这是真的,它也可能便宜得多,但如果两者的成本相同,那就有意义了。

简而言之,有什么区别:

BigQueryIO.read(...).fromQuery("SELECT * FROM " + tableName)

并且

{{1}}

1 个答案:

答案 0 :(得分:5)

fromfromQuery(SELECT * FROM ...)更便宜,更快。

  • from直接导出表格,导出数据为free,用于BigQuery。
  • fromQuery(SELECT * FROM ...)将首先扫描整个表格($ 5 / TB)并导出结果。
相关问题