compute_usage 系统表按小时汇总每张表的湖表优化作业(如智能Compaction)CU·Hours 消耗。您可以通过 Flink 等引擎查询该表,用于成本分析和资源优化。
compute_usage仅保留最近 30 天的数据,超出范围的分区会自动过期清理。如需长期保存,建议定期归档到自建表。表中的 CU·Hours 用于资源消耗分析与趋势观察,最终计费请以账单为准。
字段说明
以下为系统表内置定义,仅展示字段结构,无需手动执行。
CREATE TABLE `compute_usage` (
`database_name` STRING COMMENT 'Database name',
`table_id` STRING COMMENT 'Table ID',
`table_name` STRING COMMENT 'Table name',
`cu` DOUBLE COMMENT 'CU * Hours consumed',
`start_time` BIGINT COMMENT 'Usage period start time (epoch milliseconds)',
`end_time` BIGINT COMMENT 'Usage period end time (epoch milliseconds)',
`dt` STRING COMMENT 'Date (yyyyMMdd)'
) COMMENT 'Hourly table-level compute resource consumption'
PARTITIONED BY (dt) WITH (
'file.format' = 'avro',
'partition.expiration-time' = '30 d',
'partition.timestamp-formatter' = 'yyyyMMdd'
);各字段含义如下:
字段 | 说明 |
database_name | 数据库名称。 |
table_id | 表 ID。对于多表操作、数据库级操作等场景,显示为 |
table_name | 表名称。对于多表操作、数据库级操作等场景,显示为 |
cu | 该小时内消耗的 CU·Hours,为所有湖表优化作业(智能 Compaction、生命周期管理等)的总和。 |
start_time | 计量周期开始时间(毫秒时间戳),通常为整点。 |
end_time | 计量周期结束时间(毫秒时间戳),通常为下一个整点。 |
dt | 分区字段,日期格式为 |
查询示例
支持使用DLF数据预览和外部计算引擎(如Flink)进行SQL查询:
DLF数据预览
使用 DLF 内置的数据预览功能直接执行 SQL 查询,无需额外配置计算引擎。操作详情和计费请参见数据探查。
Flink SQL
使用外部计算引擎(如 Flink)执行 SQL 查询,需先配置 DLF Paimon Catalog,详见Flink SQL访问DLF。
以下示例中如果出现 <yourCatalogName>、<tableID>、<date>、<startDate>、<endDate> 等尖括号包裹的字符串,均为占位符,请替换为实际值(日期格式为 yyyyMMdd)后再执行。
查询某日各表的计算资源消耗排行
SELECT
database_name,
table_name,
table_id,
SUM(cu) AS total_cu
FROM `<yourCatalogName>`.`system`.`compute_usage`
WHERE dt = '<date>' -- 替换为实际日期,格式 yyyyMMdd
GROUP BY database_name, table_name, table_id
ORDER BY total_cu DESC;查询 Catalog 总计算资源消耗趋势
按日统计
SELECT
dt,
SUM(cu) AS daily_cu,
min(start_time) AS min_start_time,
max(start_time) AS max_start_time
FROM `<yourCatalogName>`.`system`.`compute_usage`
WHERE dt >= '<startDate>' -- 替换为实际开始日期,格式 yyyyMMdd
AND dt <= '<endDate>' -- 替换为实际截止日期,格式 yyyyMMdd
GROUP BY dt
ORDER BY dt;按小时统计
SELECT
start_time,
end_time,
SUM(cu) AS hourly_cu
FROM `<yourCatalogName>`.`system`.`compute_usage`
WHERE dt = '<date>' -- 替换为实际日期,格式 yyyyMMdd
GROUP BY start_time, end_time
ORDER BY start_time;查询某张表的计算资源消耗趋势
按日统计
SELECT
dt,
SUM(cu) AS daily_cu,
min(start_time) AS min_start_time,
max(start_time) AS max_start_time
FROM `<yourCatalogName>`.`system`.`compute_usage`
WHERE table_id = '<yourTableId>'
AND dt >= '<startDate>' -- 替换为实际开始日期,格式 yyyyMMdd
AND dt <= '<endDate>' -- 替换为实际截止日期,格式 yyyyMMdd
GROUP BY dt
ORDER BY dt;按小时统计
SELECT
start_time,
end_time,
SUM(cu) AS hourly_cu
FROM `<yourCatalogName>`.`system`.`compute_usage`
WHERE table_id = '<yourTableId>'
AND dt = '<date>' -- 替换为实际日期,格式 yyyyMMdd
GROUP BY start_time, end_time
ORDER BY start_time;