在使用bq命令行工具时引用包含连字符的项目名称时遇到问题

时间:2017-03-20 18:54:17

标签: google-bigquery

我有一个查询生成用于插入表格的行。查询引用不同项目中的表。项目名称包括连字符(例如abc-xyz)。当我尝试使用bq命令并使用`来包含项目名称时,我得到错误,如果我不这样做,我会收到错误,如果我尝试单引号或双引号或括号仍然会出错。有没有办法在使用bq命令的查询中引用其名称中带有连字符的另一个项目?

这是我运行示例命令时得到的结果:

bq query --use_legacy_sql = false“从abc-xyz选择account_id,max(已更新)max_updated,max(_PARTITIONTIME)max_pt。myset.mytable group by 1”

-bash:abc-xyz:找不到命令

当我在UI中复制并粘贴相同的查询strin时,它可以正常工作。

由于

2 个答案:

答案 0 :(得分:2)

理想情况下,您应该将整个表引用括在后面 - 不仅仅是项目本身

所以,而不是

`abc-xyz`.myset.mytable  

尝试

`abc-xyz.myset.mytable`

答案 1 :(得分:1)

除了Mikhail的建议外,如果您的查询中的内容与Bash语法(例如引号和美元符号)冲突,则另一种方法是将查询放入文件中,例如: my_query.sql,然后运行:

bq query --use_legacy_sql=false < my_query.sql

这会将文件的未修改内容传送到bq工具。