如何在Google BigQuery Composer和Cloud Shell中提交多个查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Google BigQuery Composer和Cloud Shell中提交多个查询相关的知识,希望对你有一定的参考价值。

只是一个简单的问题,请不要告诉我,Query Composer和Google Cloud Shell不支持提交多个查询。

当我提交两个语句(例如由“;”分隔的drop table语句)时,它告诉我下一行的drop word是意外的。

答案

事实证明,没有办法在BigQuery Composer或Google Cloud Shell中执行多个查询。但是,我找到的一个解决方法是在Cloud Shell中创建一个本地文本文件,该文件存储由“;”分隔的查询。然后将IFS(内部字段分隔符)设置为“;”这样我就可以使用for循环遍历文件并逐个执行查询。例:

queries.txt

select 1+2;
select 2+3;
select 3+4;

Cloud Shell命令

IFS=";"
alias bqn="bq query --nouse_legacy_sql"
for q in $(<"queries.txt"); do bqn $q; done;
另一答案

Google BigQuery是一种类似SQL的语言,并非所有主流SQL语言的实现都与BigQuery直接兼容。

话虽如此,有很多方法可以解决。如果要创建materialize数据表以获得更好的查询性能并限制BigQuery中的cost of storing data,则可以在临时表上设置expiration日期。

这是带有过期日期标志的命令:

bq --location=[LOCATION] mk --dataset --default_table_expiration [INTEGER] --description [DESCRIPTION] [PROJECT_ID]:[DATASET]

以上是关于如何在Google BigQuery Composer和Cloud Shell中提交多个查询的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AppScript 在 BigQuery 中将 Google 工作表持久化为表格

google 如何在 Bigquery/Google-Analytics 中设置 fullVisitorId/Client ID?

如何在 Google BigQuery 中设置用户的查询配额

在 google bigquery 中,如何使用 google python 客户端使用 javascript UDF

Google Spark-BigQuery-Connector如何利用BigQuery Storage API?

如何使用 Bigquery 在 Google Bigquery 中进行身份验证,而无需使用服务帐户进行用户输入