全部產品
Search
文件中心

Hologres:Serverless Computing資源用量與計費

更新時間:Aug 17, 2024

Hologres的Serverless Computing功能是按照大SQL作業(例如CPU或記憶體開銷大的SQL作業)實際消耗的Serverless Computing計算資源和使用時間長度進行計費,本文為您介紹如何查看Serverless Computing計算資源的消耗量以及計費詳情。

計費說明

Serverless Computing功能,針對每個SQL作業,按照使用的CU*H(實際使用的資源量 * 資源使用時間長度)統計資源用量。按小時結算,即每小時匯總上一小時使用Serverless Computing執行的SQL作業用量,計費(結算)一次。具體資源單價請參見計費說明

重要
  • Serverless Computing已於北京時間2024年07月01日起正式收費,請參考下文,關注您的Serverless Computing資源消耗量,並估算賬單。如有需要,請進一步調整作業的資源分派,避免產生預期外的費用。

  • 目前Serverless Computing支援的地區及可用性區域請參見Serverless Computing使用指南

僅執行成功的SQL作業計費,執行失敗不計費。

查詢資源消耗量

自Hologres V2.1.18版本起,可以通過查詢hologres.hg_serverless_computing_query_log視圖計算Serverless Computing任務的資源消耗量,並根據Serverless資源的計費公式,估算費用。關於慢Query日誌詳情,請參見慢Query日誌查看與分析

說明
  • 在Hologres V2.2.7版本之前,慢Query日誌只記錄執行時間長度超過100毫秒的Serverless Computing成功任務以及所有失敗任務。而在Hologres V2.2.7及以上版本,支援查看所有Serverless Computing任務。

  • 慢Query日誌記錄的是每條SQL的資源消耗資料,在賬單產生的過程中,可能需要進行資料彙總、單位換算等處理,因此可能會有少量差異。

許可權說明

根據慢Query日誌估算Serverless Computing的消耗資源量與賬單需要有一定的許可權,其許可權規則和授權方式說明如下。

  • 查詢執行個體所有DB的資料掃描量

    • 方式一:需要授予Superuser許可權,授權命令如下:

      --將“雲帳號ID”替換為實際使用者名稱。如果是RAM使用者,帳號ID前需要添加“p4_”。
      ALTER USER "雲帳號ID" SUPERUSER;
    • 方式二:將使用者添加到pg_read_all_stats使用者組,授權命令如下:

      說明

      除了Superuser許可權,Hologres還支援pg_read_all_stats使用者組查看所有DB的資料掃描量。如果普通使用者需要查看全部日誌,可聯絡Superuser進行授權並加入該使用者組。

      GRANT pg_read_all_stats TO "雲帳號ID";--專家許可權模型授權
      CALL spm_grant('pg_read_all_stats', '雲帳號ID');  -- SPM許可權模型
      CALL slpm_grant('pg_read_all_stats', '雲帳號ID'); -- SLPM許可權模型
  • 查看當前DB的資料掃描量

    • 開啟簡單許可權模型(SPM)或基於Schema層級的簡單許可權模型(SLPM),並將使用者加入db_admin使用者組,db_admin角色可以查看當前DB的資料掃描量,授權命令如下:

      CALL spm_grant('<db_name>_admin', '雲帳號ID');  -- SPM許可權模型
      CALL slpm_grant('<db_name>.admin', '雲帳號ID'); -- SLPM許可權模型
    • 普通使用者支援查詢當前帳號對應DB下自己執行的資料掃描量。

說明

更多許可權操作請參見許可權管理概述

查詢單條SQL的資源消耗量

您可以使用如下SQL命令查詢Serverless Computing任務的資源消耗量明細。

SELECT
    *,
    queue_time_ms,	-- Serverless Computing資源中SQL等待排隊時間長度,單位毫秒(ms)
    serverless_allocated_cores,	-- Serverless Computing資源實際分配給當前SQL的CU數。
    serverless_resource_used_time_ms, -- SQL實際佔用Serverless Computing資源的時間長度,單位毫秒(ms)
    (serverless_allocated_cores::DECIMAL(38, 4)) * (serverless_resource_used_time_ms::DECIMAL(38, 4)) AS serverless_cums
FROM
    hologres.hg_serverless_computing_query_log;

查詢指定時間內的資源消耗量

您可以使用如下SQL命令查詢指定時間內Serverless Computing執行成功的任務資源消耗量。

SELECT
    (SUM((serverless_allocated_cores::DECIMAL(38, 4)) * (serverless_resource_used_time_ms::DECIMAL(38, 4))) / 1000 / 60 / 60)::bigint AS serverless_cuh
FROM
    hologres.hg_serverless_computing_query_log
WHERE
    status = 'SUCCESS'
    AND serverless_allocated_cores IS NOT NULL
    AND serverless_resource_used_time_ms IS NOT NULL
    AND query_end BETWEEN '2024-05-01 00:00:00' AND '2024-05-31 24:00:00';-- 指定時間段

推薦配置

Hologres現已支援對Serverless Computing運行指標進行監控,推薦您根據業務情境對Serverless Computing建立警示規則,以避免Serverless Computing產生預期外的費用。

例如對於監控指標正在啟動並執行Serverless Computing的查詢中,最長的時間長度,推薦的警示規則如下:

警告(Warn):“正在啟動並執行Serverless Computing的查詢中,最長的時間長度連續5個周期(1周期=1分鐘),監控值>=3600000milliseconds”。

jiankong.jpg

詳情請參見監控警示實踐

相關文檔