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

非管理员权限下如何追踪BigQuery中my_table的7天数据历史?

实现方法

因为你没有my_table的管理员权限,核心思路是每日保存当前表的快照到一个你有权限操作的历史表,之后就能随时查询最近7天的历史数据。具体步骤如下:

1. 创建历史存储表(需有数据集/表创建权限)

先在你有权限的数据集下创建一个用来存储每日数据快照的表,比如my_personal_dataset:

CREATE TABLE IF NOT EXISTS my_personal_dataset.item_quantity_history (
  item STRING,
  quantity INT64,
  snapshot_date DATE -- 存储快照对应的日期
);

2. 每日执行快照插入(推荐用调度查询)

要自动完成每日数据保存,最便捷的方式是用BigQuery的调度查询(若你有权限创建):

  • 新建调度查询,设置每日固定时间运行(比如凌晨),执行以下插入语句:
INSERT INTO my_personal_dataset.item_quantity_history (item, quantity, snapshot_date)
SELECT item, quantity, CURRENT_DATE()
FROM my_table;
  • 若没有调度查询权限,可手动每日执行这条SQL,或联系管理员帮你配置调度任务。

3. 查询最近7天的历史数据

到第8天时,执行以下查询就能得到过去7天的所有快照记录,日期格式按你需要的dd.mm.yyyy展示:

SELECT
  item,
  quantity,
  FORMAT_DATE('%d.%m.%Y', snapshot_date) AS record_date
FROM my_personal_dataset.item_quantity_history
WHERE snapshot_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
ORDER BY snapshot_date;

补充说明

  • 如果my_table每天包含多个不同item,上述方法会自动保存所有item的每日数据,查询时也会返回所有item的7天历史。
  • 为避免历史表无限膨胀,可在每日插入后清理7天前的旧数据:
-- 可选:每日插入后清理过期数据
DELETE FROM my_personal_dataset.item_quantity_history
WHERE snapshot_date < DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 18:44:57