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

如何在Databricks SQL中获取Delta表子查询结果的大小?

在Databricks SQL中查询子查询结果的大小

下面几种实用方法可以帮你获取子查询结果的大小,判断是否满足分区的1GB要求:

方法1:使用EXPLAIN ANALYZE获取实际执行后的精确大小

该方法会实际执行子查询,返回结果的真实字节数,适合需要精准值的场景。注意:若子查询数据量极大,可能会消耗较多集群资源。

EXPLAIN ANALYZE
SELECT *
FROM your_table
WHERE calendar_month_id = '202502'

执行后,在输出的Query Plan节点中找到sizeInBytes字段,将字节数换算为GB(1GB ≈ 1073741824字节)即可判断是否达标。

方法2:创建临时表后用DESCRIBE DETAIL查看

先将子查询结果写入临时表,再通过元数据查询获取存储大小,结果同样精准:

-- 创建临时视图存储子查询结果
CREATE OR REPLACE TEMP VIEW temp_month_data AS
SELECT *
FROM your_table
WHERE calendar_month_id = '202502';

-- 查询临时视图的详细存储信息
DESCRIBE DETAIL temp_month_data;

返回结果中的size字段就是该子查询结果的总字节数,换算为GB后即可验证是否满足1GB要求。

方法3:通过Delta元数据查询已分区表的单分区大小(仅适用于已分区表)

如果你的表已经按calendar_month_id分区,可以直接查询Delta表的元数据,无需执行子查询就能获取对应分区的大小:

SELECT 
  partition_values[0] AS calendar_month_id,
  sum(total_bytes) / 1073741824 AS size_gb
FROM delta.`/path/to/your/delta/table`
WHERE partition_values[0] = '202502'
GROUP BY partition_values[0];

替换/path/to/your/delta/table为你的Delta表存储路径即可,partition_values[0]对应第一个分区字段(若calendar_month_id是唯一分区字段则直接使用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:57:05