bq命令行中的标准SQL

时间:2017-06-11 10:38:03

标签: google-bigquery

我正在尝试通过命令行在标准模式下运行查询。我正在使用最近版本的这个bigquery-2.0.17。

首先我尝试使用bq查询命令:

bq  query --use_legacy_sql=False  "SELECT string_col FROM `source_name`"

获得例外

  

FATAL Flags解析错误:未知命令行标志'use_legacy_sql'

之后,我以shell模式运行

project_name> query --use_legacy_sql=False "SELECT string_col FROM `source_name`"

得到:

  

float()参数必须是字符串或数字

你能告诉我,如何在命令行中运行查询。

由于

2 个答案:

答案 0 :(得分:5)

您正在运行的命令都是正确的。我唯一不同的是我从一个文件中读取查询,所以我没有遇到问题,我的bash试图解释`符号,就像这样:

cat query.sql | bq query --use_legacy_sql=False

(你在bq shell解释器中没有遇到这个问题)。

假设您的查询都是正确的并且遵循Standard syntax(您还可以运行"select [1, 2]"这样的简单查询来查看它是否有效,如果有,那么您的source_name可能一些问题正在发生),唯一想到的可能是你尝试reinstall gcloud甚至更新它(目前我们在bq版本2.0.24),因为这似乎与环境更相关比命令语法。

答案 1 :(得分:0)

需要使用gcloud安装而不是单独bq。
谢谢