Google bigquery 位置上未找到BigQuery表错误

Google bigquery 位置上未找到BigQuery表错误,google-bigquery,Google Bigquery,我正在尝试运行下面的脚本,但我不断得到错误的数据集找不到。该问题是由Select查询中的$date引起的,如何解决该问题? 我的目标是从另一个数据集中复制表,并根据日期进行数据匹配 #!/bin/bash date="20160805" until [[ $date > 20160807 ]]; do bq query --use_legacy_sql=false --destination_table="google_analytics.ga_sessions_${da

我正在尝试运行下面的脚本,但我不断得到错误的数据集找不到。该问题是由Select查询中的$date引起的,如何解决该问题? 我的目标是从另一个数据集中复制表,并根据日期进行数据匹配


#!/bin/bash
date="20160805"
until [[ $date > 20160807 ]];
    do
    bq query --use_legacy_sql=false --destination_table="google_analytics.ga_sessions_${date}" 'SELECT g.* FROM `10241241.ga_sessions_$date` g, UNNEST (hits) as hits where hits.page.hostname="www.googlemerchandisestore.com" '
    date=$(date +'%Y%m%d' -d "$date + 1 day")
done

以下错误:

查询操作中的BigQuery错误:处理作业“test-247020:bqjob_r6a2d68fbc6d04a34_000001722edd8043_1”时出错:未找到:在位置EU中未找到表test-247020:10241241.ga_会话

查询操作中的BigQuery错误:错误处理作业“test-247020:bqjob_r5c42006229434f72_000001722edd85ae_1”:未找到:在位置EU中未找到表test-247020:10241241.ga_会话


查询操作中的BigQuery错误:错误处理作业“test-247020:bqjob\u r6114e0d3e72b6646\u000001722EDD8960\u 1”:未找到:在位置EU中未找到表test-247020:10241241.ga_会话。问题是您对查询使用单引号,因此bash不会用参数值替换$date。您需要为查询字符串保留双引号:

date="20160805"
until [[ $date > 20160807 ]];
    do
    bq query --use_legacy_sql=false --destination_table="google_analytics.ga_sessions_${date}" "SELECT g.* FROM \`10241241.ga_sessions_$date\` g, UNNEST (hits) as hits where hits.page.hostname=\"www.googlemerchandisestore.com\" "
    date=$(date +'%Y%m%d' -d "$date + 1 day")
done

问题是查询使用单引号,因此bash不会将$date替换为参数值。您需要为查询字符串保留双引号:

date="20160805"
until [[ $date > 20160807 ]];
    do
    bq query --use_legacy_sql=false --destination_table="google_analytics.ga_sessions_${date}" "SELECT g.* FROM \`10241241.ga_sessions_$date\` g, UNNEST (hits) as hits where hits.page.hostname=\"www.googlemerchandisestore.com\" "
    date=$(date +'%Y%m%d' -d "$date + 1 day")
done