问题描述
我想用临时表中已经可用的数据替换我的 BQ 表上的最新分区。
有人可以帮我做这件事吗?
以下命令没有帮助:
bq query \
--use_legacy_sql=false \
--replace \
--destination_table 'mydataset.table1$20160301' \
'SELECT
column1,column2
FROM
mydataset.mytable'
解决方法
我猜你需要使用 bq cp 而不是 bq query
来自here:
要复制分区,请使用 bq 命令行工具的 bq cp (copy) 带有分区装饰器 ($date) 的命令,例如 $20160201。
可选标志可用于控制 目标分区:
-a 或 --append_table 将源分区中的数据附加到目标数据集中的现有表或分区。
-f 或 --force 会覆盖目标数据集中的现有表或分区,并且不会提示您进行确认。
如果表或分区存在于目标数据集中,-n 或 --no_clobber 将返回以下错误消息: 'project_id:dataset.table 或 table$date' 已经 存在,跳过。如果未指定 -n,则默认行为是 提示您选择是替换目标表还是 分区。
bq --location=location cp \
-f \
project_id:dataset.source_table$source_partition \
project_id:dataset.destination_table$destination_partition
所以不要忘记使用-f参数来销毁旧分区