You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery中复制分区表并保留各行对应的分区时间

BigQuery分区表复制(保留原分区时间+表结构完全一致)实现方案

该操作完全可以实现,以下是两种常用的稳定操作方式:

方式1:使用原生表复制功能(零代码,最便捷)

该操作会1:1复刻源表的字段结构、分区配置、所有行的分区时间,不需要额外调整参数:

  • 控制台操作:进入源表详情页,点击顶部「复制」按钮,选择目标项目、目标数据集,填写目标表名后确认即可
  • bq命令行操作:执行以下命令即可
    bq cp 你的源项目ID:源数据集名.源表名 你的目标项目ID:目标数据集名.目标表名

方式2:使用CTAS语句创建(灵活支持过滤/修改逻辑的场景)

如果需要同步的同时附带数据过滤等自定义逻辑,可以用CREATE TABLE AS SELECT语句,注意保持分区规则和源表完全一致即可:

源表为业务字段分区场景

比如源表按event_time字段按天分区,示例代码如下:

CREATE OR REPLACE TABLE `你的项目ID.你的数据集.目标表名`
-- 此处分区规则完全照搬源表的配置即可,例如按小时分区就替换为PARTITION BY TIMESTAMP_TRUNC(event_time, HOUR)
PARTITION BY DATE(event_time)
AS 
SELECT * FROM `你的项目ID.你的数据集.源表名`;

源表为摄入时间(Ingestion Time)分区场景

需要把系统内置的分区伪列_PARTITIONTIME同步到目标表,示例代码如下:

CREATE OR REPLACE TABLE `你的项目ID.你的数据集.目标表名`
PARTITION BY _PARTITIONTIME
AS 
SELECT *, _PARTITIONTIME FROM `你的项目ID.你的数据集.源表名`;

补充注意:如果目标表已经提前创建,需要先确认目标表的字段顺序、类型、分区规则和源表完全一致,再执行INSERT INTO 目标表 SELECT * FROM 源表写入即可,摄入时间分区场景同样需要把_PARTITIONTIME加入查询字段列表。

内容的提问来源于stack exchange,提问作者user9068370

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 02:24:00