如何恢复BigQuery表已删除分区或指定creation_time创建新分区?
关于BigQuery分区恢复与creation_time设置的问题
1. 恢复已删除的BigQuery分区
- 如果删除分区的操作还在时间旅行保留期内(默认7天,最多可配置至14天),可以通过时间旅行功能恢复该分区的数据,再重新写入目标表的对应分区。示例SQL:
INSERT INTO `your-project.your-dataset.your-table` PARTITION(partition_column) SELECT * FROM `your-project.your-dataset.your-table` FOR SYSTEM_TIME AS OF TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 2 HOUR) WHERE partition_column = '2024-05-20'; -- 替换为被删除分区的标识值 - 如果超过时间旅行保留期,只能依赖提前做好的备份:比如手动导出到GCS的分区数据,或是通过BigQuery自动备份策略生成的快照,将备份数据重新导入对应分区。
- 注意:无法直接恢复已被删除的分区实体,只能恢复数据后重建分区。
2. 创建分区时指定creation_time属性
BigQuery的creation_time是系统自动生成的只读元数据,无法手动修改或在创建分区时指定自定义时间。官方文档中提及的该标签仅用于查看分区的创建时间,不支持自定义赋值。
如果需要记录自定义的创建时间,建议在表结构中新增一个自定义字段(比如custom_creation_time),在插入分区数据时手动传入所需的时间值,以此替代系统的creation_time。
内容的提问来源于stack exchange,提问作者Hello World
相关产品推荐
相关产品推荐

