【问题标题】:Is there a way to get the history of the size of each Table in BigQuery有没有办法在 BigQuery 中获取每个表的大小历史记录
【发布时间】:2021-09-17 10:14:31
【问题描述】:

我们正在努力管理 BigQuery 存储的费用。 为了做到这一点,我们试图访问每个表大小的历史记录。 我知道您可以使用dataset.__Tables__ 表访问表的大小。 我尝试在特定的时间戳访问此表:

bq cp dataset.__Tables__@1630422245000 dataset.1630422245000

不工作。

我也尝试在查询中直接使用:

FOR SYSTEM_TIME AS OF TIMESTAMP("2021-08-31 00:00:00+00") )

它也不起作用。 不知道有没有办法获取这些信息?

显然,在未来使用当前数据监控每个表的大小会很容易,但我想调查以前发生的价格上涨。

【问题讨论】:

  • 根据BQ文档,FOR SYSTEM_TIME AS OF只能用于查询过去7天的历史数据。它还说“如果时间戳指定了超过 7 天前或创建表之前的时间,则查询失败并返回错误”。如果您想跳到特定日期并知道表的大小,我想到的一件事是当时恢复该表,然后在删除之前检查新表的大小 这是时间旅行的链接文档:cloud.google.com/bigquery/docs/time-travel#restore-a-table

标签: google-bigquery


【解决方案1】:

我们可以使用时间旅行访问存储在 BigQuery 中的历史数据,但只能从过去 7 天内的任何时间点访问数据。因此,当您尝试访问 2021 年 8 月 31 日(超过 7 天前)的 BigQuery 表数据时,BigQuery 将返回类似的错误,例如:

表格的无效快照时间 1601168925462 我的项目:mydataset.table1@1601168925462。以前不能读 1601573410026.

7天的限制也适用于restoring表访问历史数据(从特定时间点开始)。这同样适用于已删除或过期的表。

为了能够将数据持久化超过 7 天,可以创建 table snapshots。使用表快照,您可以根据需要保留指定时间点的表数据。快照也会受到时间旅行限制的影响(即,您只能对 7 天前或更近期的表数据进行快照。

【讨论】:

  • 谢谢!因此,是的,对于前一段时间查看特定的增长,这是不可能的。我将手动查看它,然后从现在开始我们将尝试将大小保存在某个地方。谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多