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”。
詳情請參見監控告警實踐。
相關文檔
Serverless Computing功能的介紹詳情,請參見Serverless Computing概述。
Serverless Computing功能的使用詳情,請參見Serverless Computing使用指南。