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

BigQuery中创建Schema无关备份及JSON转表的SQL实现问题

编辑:感谢@NickW告知BigQuery原生快照功能,此问题已无意义。建议优先使用框架原生功能而非重复造轮子,我对该解决方案很满意。

问题:BigQuery Schema无关备份的SQL恢复方案

我需要创建与Schema无关的备份——原始数据的Schema变更不会破坏备份。我原本的思路是把数据转成JSON格式存储,再用BigQuery SQL查询,备份代码如下:

WITH aggregated_table as (
  -- Aggregate all data into one JSON file
  SELECT id ,TO_JSON(row_struct) AS data
  -- Extract each row as a STRUCT
  FROM mytable row_struct)

-- Backups use time as primary key
SELECT CURRENT_TIMESTAMP() as backup_time, id, data from aggregated_table

但恢复备份的过程太繁琐,我找不到自动识别Schema或列名的方法。我的表有300+列,不想像下面这样逐个指定列:

SELECT
  backup_time,
  data.id as id,
  TIMESTAMP(data.some_time_value) as some_time_value,
  data.some_string_value as some_string_value,
  --...300 more columns ...
FROM my_backup WHERE backup_time = xxx

查了BigQuery的JSON文档也没找到适配的功能。有没有解决方案?或者这种JSON备份的方式本身就是反模式,有更好的替代方案?

我希望能用BigQuery SQL实现类似JSON扁平化的恢复功能,虽然知道Python Pandas可以从JSON填充表,但还是想只用SQL解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:32:54