按最后查询日期统计 BigQuery 表存储
BigQuery 中的存储费用通常被忽视,因为与计算费用相比它们很小。但随着时间的推移,没有人查询的过时表的积累可能带来可观的月度支出。此查询显示按最后查询时间排序的每个表及其存储费用。
为什么重要
大型组织可能积累数千个不再使用的表——来自旧管道的遗留物、一次性分析或已弃用的功能。这些表每月都在悄悄地积累存储费用。通过识别几周或几个月未被查询的表,您可以归档、删除或将其转换为更便宜的存储层。
工作原理
查询将 INFORMATION_SCHEMA.JOBS_BY_PROJECT(查找每个表的最后查询时间)与 TABLE_STORAGE(尺寸数据)和 TABLE_OPTIONS(确定逻辑与物理计费模式)连接。它使用 Google 发布的每 GiB 定价,根据活跃字节与长期字节计算存储费用。
SQL 查询
Fill in your details to get a ready-to-run query:
-- Find stale tables sorted by last query date with storage cost
DECLARE lookback_days INT64 DEFAULT 30;
-- US multi-region pricing ($/GiB/month)
DECLARE logical_active_price NUMERIC DEFAULT 0.02;
DECLARE logical_longterm_price NUMERIC DEFAULT 0.01;
DECLARE physical_active_price NUMERIC DEFAULT 0.04;
DECLARE physical_longterm_price NUMERIC DEFAULT 0.02;
WITH last_access AS (
SELECT
ref.project_id, ref.dataset_id, ref.table_id,
MAX(j.creation_time) AS last_query_at
FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT j,
UNNEST(j.referenced_tables) ref
WHERE j.state = 'DONE' AND j.job_type = 'QUERY'
AND j.creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
GROUP BY 1, 2, 3
),
storage_info AS (
SELECT
s.project_id,
s.table_schema AS dataset_id,
s.table_name AS table_id,
IFNULL(opt.option_value, 'LOGICAL') AS model,
IF(opt.option_value = 'PHYSICAL', s.total_physical_bytes, s.total_logical_bytes) AS size_bytes,
IF(opt.option_value = 'PHYSICAL', s.active_physical_bytes, s.active_logical_bytes) AS active_bytes,
IF(opt.option_value = 'PHYSICAL', s.long_term_physical_bytes, s.long_term_logical_bytes) AS lt_bytes
FROM `your-project`.`region-us`.INFORMATION_SCHEMA.TABLE_STORAGE s
...查询说明
查询交叉引用两个数据源:作业元数据(每个表的最后查询时间)和表存储元数据(尺寸和计费模式)。在回溯窗口内从未被查询的表首先显示(NULLS FIRST)。存储费用使用活跃与长期字节以及逻辑或物理计费模式的适当定价计算。
关键洞察
列表顶部的表(从未查询或很久以前查询)是删除或归档的最佳候选者。
未被查询的大型表可能仍被其他系统引用——删除前验证。
超过 90 天的表自动获得长期定价(便宜 50%),但删除未使用的表可节省 100%。
物理计费模式表每 GiB 费用为 2 倍,但受益于压缩——检查您的表是否高度可压缩。
最佳实践
- 1
设置对过去 30 天内未查询表的月度审查。
- 2
对数据集实施表过期策略(default_table_expiration_ms)用于临时数据。
- 3
将重要但未使用的表归档到 Google Cloud Storage(比 BigQuery 存储便宜)。
- 4
将具有高压缩比的数据集切换到物理计费模式,最多可节省 70% 的存储费用。
相关指南
按查询分析 BigQuery 费用
分析每个查询的费用、槽位使用情况和执行时间。获取每次查询执行的按需费用详细分解。
阅读指南按费用排名的 BigQuery 热门查询
按按需费用找出最昂贵的 BigQuery 查询。按总计费字节数对查询排名,识别项目中最大的费用驱动因素。
阅读指南BigQuery 按需与 Editions:每查询费用比较
比较每个查询的按需与 BigQuery Editions 定价。获取 Standard、Enterprise 和 Enterprise Plus 版本的每查询建议。
阅读指南按项目分析 BigQuery 费用
跨 GCP 项目跟踪 BigQuery 费用。使用 INFORMATION_SCHEMA 比较项目级支出,找出组织中最昂贵的项目。
阅读指南