BigQuery BashScript--不转移到目的地

时间:2017-11-28 20:49:32

标签: bash google-bigquery

我写了一个简单的bash脚本,它从查询中获取结果并将它们附加到现有表中。我的脚本执行但数据似乎没有到达目标表。知道我可能做错了什么吗?是否有可能我不能使用分区($)作为目的地?

非常感谢你的帮助。

#!/bin/bash
bq query \
--destination_table=logs.p_activity_428001$20170803 \
--append_table <<EOF
SELECT 
*
FROM log.p_activity_428001
where _PARTITIONTIME = TIMESTAMP('2017-08-03')

EOF

1 个答案:

答案 0 :(得分:1)

你需要逃脱美元符号; bash正在扩展位置参数$20170803,除非您向脚本提供20,170,803个参数,否则该参数为空。单个反斜杠就足够了:

#!/bin/bash
bq query \
--destination_table=logs.p_activity_428001\$20170803 \
--append_table <<EOF
SELECT 
*
FROM log.p_activity_428001
where _PARTITIONTIME = TIMESTAMP('2017-08-03')

EOF

虽然单引号整个表名可能更具可读性:

#!/bin/bash
bq query \
--destination_table='logs.p_activity_428001$20170803' \
--append_table <<EOF
SELECT 
*
FROM log.p_activity_428001
where _PARTITIONTIME = TIMESTAMP('2017-08-03')

EOF