我写了一个简单的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
答案 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