google-bigquery - 当您在数据流中使用 `BigQueryIO` 与 `fromTable` SELECT * .. `fromQuery("时,.")` 有区别吗?

标签 google-bigquery google-cloud-dataflow dataflow

当您需要在数据流作业中从 bigquery 中的一个或多个表中读取所有数据时,我会说有两种方法。第一种方法是将 BigQueryIOfrom 一起使用,它读取有问题的表,第二种方法是使用 fromQuery,您可以在其中指定从同一个表中读取所有数据的查询。所以我的问题是:

  • 使用一个比另一个有任何成本或性能优势吗?

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

简而言之,有什么区别:

BigQueryIO.read(...).from(tableName)

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

最佳答案

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

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

关于google-bigquery - 当您在数据流中使用 `BigQueryIO` 与 `fromTable` SELECT * .. `fromQuery("时,.")` 有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48486338/

相关文章:

google-cloud-dataflow - ParDo 中的侧输出 | Apache Beam Python SDK

testing - 在数据流覆盖中,返回一个变量是否使用它?

google-analytics - BigQuery GA360 链接数据集不在项目中

database - 如何将特定日期格式加载到 BigQuery 中

google-cloud-dataflow - 谷歌云数据流使用的凭据

python-2.7 - 在 Google Cloud Dataflow 中访问模板化运行时参数 - Python

python - 添加requirements.txt [Python]时数据流失败

google-cloud-platform - Google Cloud DataFlow 作业尚不可用……在 Airflow 中

google-bigquery - 使用 BigQuery Jupyter 魔术命令时,将 Python 环境中的变量添加到查询中

google-bigquery - 谷歌大查询 : In internal error occurred and the request could not be completed