有没有办法在 BigQuery 中保存的视图中使用脚本方法?

Posted

技术标签:

【中文标题】有没有办法在 BigQuery 中保存的视图中使用脚本方法?【英文标题】:Is there a way to use scripting methods in a saved view in BigQuery? 【发布时间】:2020-03-10 21:00:03 【问题描述】:

我目前在 BigQuery 中使用视图来聚合来自许多不同大表的数据。然后,我使用此视图创建一个物化平面表,并使用 MERGE 语句对其进行更新。但是,我添加到视图中的最新 LEFT JOIN 导致实例化具体化表的查询返回错误:“查询执行期间超出资源。”目前的视图估计会产生 60GB 的数据。

为了解决这个问题,我尝试使用脚本为视图中的不同子查询创建临时表,认为这样可以节省资源。但是,我似乎无法保存使用脚本的视图。有什么办法可以做到吗?

【问题讨论】:

是否可以将查询作为存储过程存储在视图中,然后调用它来实现或更新平面表? 这有帮助吗? Command and control now easier in BigQuery with scripting and stored procedures 当您尝试保存此类视图时遇到什么错误? @MikhailBerlyant,错误为:“语法错误:在 [3:1] 处创建意外关键字” 共享错误、共享查询、共享数据...共享您需要的内容,以便人们能够真正回答您的问题 【参考方案1】:

我认为今天不支持。几周前我遇到了错误,我敢打赌这是由于测试版造成的。

为了回答评论,一个非常简单的查询

DECLARE dummy STRING;
set dummy="not work";
select dummy

这只是回答not work。尝试从这里创建一个视图,我有一个错误Syntax error: Unexpected keyword DECLARE at [1:1]。不是数据错误,不是查询错误,根本不支持!

使用存储过程无济于事,因为您使用“脚本”命令CALL 来调用您的存储过程。

欲知详情,有feature request on this

【讨论】:

以上是关于有没有办法在 BigQuery 中保存的视图中使用脚本方法?的主要内容,如果未能解决你的问题,请参考以下文章

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

有没有办法直接使用链接在 RStudio 中运行保存的 bigquery? [复制]

无法创建视图 - BigQuery

在 BigQuery 中定期创建视图

如何在文件中从SQL源创建BigQuery视图(Windows命令行)

使用 EXECUTE IMMEDIATE 保存带有动态 SQL 的 BigQuery 视图