有没有办法使用 BigQuery 视图作为数据流的输入?

Posted

技术标签:

【中文标题】有没有办法使用 BigQuery 视图作为数据流的输入?【英文标题】:Is there a way to use a BigQuery view as an input to dataflow? 【发布时间】:2017-07-11 23:45:15 【问题描述】:

我知道数据流可以使用 BigQuery 表(或 BigQuery 表的 SQL 样式查询)作为输入,但是否可以将保存的视图作为数据流的输入?

【问题讨论】:

你试过了吗?您能描述一下您使用的是哪种 Dataflow 客户端/语言吗? 【参考方案1】:

是的,您可以在数据流中使用 bigquery 旧视图,但不能使用标准 sql 视图,因为它不受支持。

我的建议是您应该使用BigQuery job 将 bigquery 视图转换为 bigquery 表,然后将其用于数据流。

【讨论】:

嗯,您能详细说明为什么您认为不支持此功能吗?我没有尝试过,但我希望您应该能够通过使用 BigQueryIO.read().fromQuery() 和从视图中选择的简单 SQL 查询来读取视图。 是的,我尝试并发现标准 SQL 视图不起作用 - 但是允许使用以下语法标准 sql。 BigQueryIO.Read .named("ReadYearAndTemp") .fromQuery("SELECT year, mean_temp FROM samples.weather_stations") .usingStandardSql();【参考方案2】:

您可以从 Dataflow 中的 Bigquery 视图中读取数据。试试下面的 Python 代码:

beam.io.Read(
        beam.io.BigQuerySource(use_standard_sql=True,
                               query='SELECT * FROM `project.dataset.view` limit 1000000'))

【讨论】:

@helin-shiah 你有没有尝试过@kyle-xiong 的这个建议?成功了吗?

以上是关于有没有办法使用 BigQuery 视图作为数据流的输入?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法找出谷歌数据工作室仪表板从 BigQuery 消耗了多少数据?

在 BigQuery 中定期创建视图

有没有办法在 bigquery 中使用动态数据集名称

有没有办法在 Google Dataflow 中创建具有数据相关架构的 Bigquery 表?

在 BigQuery 中创建动态视图

如何从 bigquery 中的视图中获取已保存的查询