我正在编写一个shell脚本,它涉及bq命令以查询现有表并将结果保存到目标表。
但是,由于我的脚本将定期运行,因此我有一个参数,用于查询应运行的日期。
例如,我的脚本如下所示:
DATE_FORMATTED=$(date +%Y%m%d)
bq query --destination_table=Desttables.abc_$DATE_FORMATTED "select hits_eventInfo_eventLabel from TABLE_DATE_RANGE([mydata.table_],TIMESTAMP($DATE_FORMATTED),TIMESTAMP($DATE_FORMATTED)) where customDimensions_index = 4"
我收到以下错误:
Error in query string: Error processing job 'pro-cn:bqjob_r5437894379_1': FROM clause with table wildcards matches no table
我怎样才能将变量$ DATE_FORMATTED传递给Bigquery的TABLE_DATE_RANGE函数以帮助执行我的查询?
提前致谢!
答案 0 :(得分:0)
您可能缺少TIMESTAMP函数中$ DATE_FORMATTED值周围的单引号。没有引号,它将默认为EPOCH时间
试试 TIMESTAMP( '$ DATE_FORMATTED'),时间标记( '$ DATE_FORMATTED')
答案 1 :(得分:0)
使用双引号""
+单引号''
。例如,在您的情况下:
TIMESTAMP("'$DATE_FORMATTED'")
或
select "'$variable'" as dummy from your_table