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



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

以下是我在运行示例命令时得到的内容:

bq query --use_legacy_sql=false "选择 account_id, max(update( max_updated, max(_PARTITIONTIME( max_pt from abc-xyz .myset.mytable group by 1">

-

bash:abc-xyz:找不到命令

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

谢谢

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

所以,而不是

`abc-xyz`.myset.mytable  

尝试

`abc-xyz.myset.mytable`

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

bq query --use_legacy_sql=false < my_query.sql

这会将文件的未修改内容通过管道传输到bq工具。

最新更新