使用带有bigquery cli的SQL源文件

时间:2012-09-07 18:13:36

标签: sql google-bigquery

是否可以在bigquery CLI中使用输入文件?

bq query < my_query.sql

3 个答案:

答案 0 :(得分:10)

如果你正在使用unix(或者在windows上安装了cygwin),你可以使用xargs:

xargs -a my_query.sql -0 bq query

或者你可以使用反向标记:

bq query `cat my_query.sql`

请注意,bq一次只能处理一个命令 - 如果.sql脚本有多个查询,则需要拆分文件;

答案 1 :(得分:0)

在Windows上我正在使用这种方法。 先决条件是将每个命令列在一行中。 这将使用bq。

逐个处理行中的每个命令
C:\temp>for /F "tokens=*" %A in (batch_query.sql) do bq query %A

C:\temp>bq query select count+1 from cmdwh_bq_prod.newtable ;
Waiting on bqjob_r63bf8c82_00000163004c7fd0_1 ... (0s) Current status: DONE
+-------+
|  f0_  |
+-------+
| 20136 |
+-------+

C:\temp>bq query select count+2 from cmdwh_bq_prod.newtable ;
Waiting on bqjob_r7ffd9b2a_00000163004c9348_1 ... (0s) Current status: DONE
+-------+
|  f0_  |
+-------+
| 20137 |
+-------+

C:\temp>bq query select count+3 from cmdwh_bq_prod.newtable ;
Waiting on bqjob_r223c57a3_00000163004ca682_1 ... (0s) Current status: DONE
+-------+
|  f0_  |
+-------+
| 20138 |
+-------+

C:\temp>
C:\temp>type batch_query.sql
select count+1 from cmdwh_bq_prod.newtable ;
select count+2 from cmdwh_bq_prod.newtable ;
select count+3 from cmdwh_bq_prod.newtable ;

C:\temp>bq query select * from cmdwh_bq_prod.newtable
Waiting on bqjob_r3a363e1b_00000163004f4dba_1 ... (0s) Current status: DONE
+-------+
| count |
+-------+
| 20135 |
+-------+

C:\temp>

答案 2 :(得分:0)

我无法获得其他解决方案来处理非常长且复杂的查询,尤其是其中带有任何引号的查询。我有更多运气将文件传输到bq工具中

cat test.sql | bq query