compute_usage 系统表

更新时间:
复制 MD 格式

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。对于多表操作、数据库级操作等场景,显示为 multi-table-job-default-table-id

table_name

表名称。对于多表操作、数据库级操作等场景,显示为 multi-table-job-default-table-name

cu

该小时内消耗的 CU·Hours,为所有湖表优化作业(智能 Compaction、生命周期管理等)的总和。

start_time

计量周期开始时间(毫秒时间戳),通常为整点。

end_time

计量周期结束时间(毫秒时间戳),通常为下一个整点。

dt

分区字段,日期格式为 yyyyMMdd,保留最近 30 天的数据。

查询示例

支持使用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;