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