Mysql 将BQ查询的输出分配给变量

Mysql 将BQ查询的输出分配给变量,mysql,shell,google-bigquery,Mysql,Shell,Google Bigquery,我试图在BigQuery中查询分区的总计数,并将结果存储在mysql表中。我这样做是为了监控 #!/bin/sh query1="bq query --format=csv 'SELECT COUNT(1) as Count FROM [dataset.tablename] WHERE _PARTITIONTIME = TIMESTAMP(\"$date\")'" eval result=\$\($query1\) echo "$result" bq_insertquery="insert i

我试图在BigQuery中查询分区的总计数,并将结果存储在mysql表中。我这样做是为了监控

#!/bin/sh
query1="bq query --format=csv 'SELECT COUNT(1) as Count FROM [dataset.tablename] WHERE _PARTITIONTIME = TIMESTAMP(\"$date\")'"
eval result=\$\($query1\)
echo "$result"

bq_insertquery="insert into <<table>>(<<column>>) values(${result})"
echo $bq_insertquery | mysql -u root -p <<dbname>>
在mysql表中插入时出错。这可能是因为变量$result同时包含头和值,即

变量$result holds:带有标题的值

看起来如果我只得到值,myquery将能够插入数据。 我应该如何只给shell变量赋值,然后再使用它呢

编辑:任何sql输出都包含列名称和值。我分配用于存储来自BigQuery的值的变量也同时包含这两个变量,即column_name和value。我正在寻找的东西,将有助于提取唯一的价值

只需在作业运行时添加-quiet标志ignore status updates,并将其传送到awk:

我想使用jq命令解析查询的json输出。在此之前,您需要首先安装jq命令。下面是将计数放入

result=$(echo -e "select 1 as col" | bq query --nouse_legacy_sql --format=json)
echo $result
它显示输出[{col:1}]。现在是使用jq命令获得最终输出的时候了

count=$(echo $count | jq '.[0]' | jq '.col')
echo $count
一行:

count=$(echo $(echo -e "select 1 as col" | bq query --nouse_legacy_sql --format=json) | jq '.[0]' | jq '.col')

@I0b0的可能重复我已经更新了问题它仍然是重复的。看一看链接的问题。仅提取值是一个完全独立的问题,已解决。我检查了给定的方法,包括命令替换,但这些方法都无助于仅提取值。这是我面临的主要问题,仅提取价值是一个完全独立的问题。
count=$(echo $(echo -e "select 1 as col" | bq query --nouse_legacy_sql --format=json) | jq '.[0]' | jq '.col')