本文為您介紹Hologres共用叢集(湖倉加速版)執行個體的計費情況。
計費模式
Hologres共用叢集(湖倉加速版)支援以Serverless方式加速查詢儲存於MaxCompute的倉內資料和OSS的湖資料,以及湖倉資料聯邦分析。計費方式與原共用叢集(MaxCompute BI 加速版)相同,即每執行一次SQL查詢作業,Hologres將根據作業輸入的資料量進行計費。
查詢作業的計費公式為:
一次查詢作業費用=查詢輸入資料量×單價
Hologres共用叢集(湖倉加速版)服務使用單獨的計算資源。
Hologres共用叢集(湖倉加速版)按照每條查詢作業掃描的資料量(每條查詢至少 10 MB,即若由於存在查詢啟動開銷,即使原始掃描資料量未滿 10 MB,也需要按照 10 MB 計算)計費。
賬單每小時推送一次,每次推送兩個小時前的賬單資料。
不查詢不產生任何費用。
查詢分區表時,您可以應用分區過濾條件,減少資料掃描量並提升查詢效能。
您可通過減少查詢欄位、添加篩選條件,減少資料掃描量並降低查詢成本。
轉換MaxCompute表為Hash Clustering表,Hash Clustering表可以最佳化Bucket Pruning、Aggregation以及儲存。更多Hash Clustering表資訊請參見Hash Clustering。
產品定價
自2023年3月8日起,共用叢集(湖倉加速版)助力您降本增效,所有查詢享受5折優惠,優惠到期日為2025年4月1日。
價格資訊如下。
計費方式 | 地區 | 價格 | 活動價格 | 單位 |
按SQL掃描的資料量付費 | 華北2(北京) | 0.066705 | 0.0333525 | 美元/GB |
華東2(上海) | 0.066705 | 0.0333525 | 美元/GB | |
華東1(杭州) | 0.066705 | 0.0333525 | 美元/GB | |
華南1(深圳) | 0.066705 | 0.0333525 | 美元/GB | |
新加坡 | 0.084049 | 0.0420245 | 美元/GB |
生命週期管理
Hologres共用叢集(湖倉加速版)根據SQL掃描的資料量進行收費,採用根據使用量的後付費模式。該模式下的執行個體周期管理流程如下:
在阿里雲官網購買一個Hologres共用叢集(湖倉加速版)執行個體,開通成功後即可運行該執行個體,系統將會匯總前一天內所有SQL對應的資料,推送賬單並從您的賬戶中自動扣除費用。
阿里雲帳號欠費後,該帳號下所有執行個體將會變成欠費狀態。若帳號累計欠費小於1000美元,執行個體正常運行。
帳號累計欠費達到1000美元時扣款,扣款失敗後的14天內,該執行個體正常運行。
執行個體扣款失敗後的第15天,執行個體停服,處於鎖定狀態,無法被訪問。在此期間將不會推送賬單。
帳號欠費停服後的第15天,執行個體將會被釋放,系統將會從管控台將執行個體刪除,執行個體相關的資料也會被清除且不能再恢複。
Query明細查詢
使用SuperUser可以查看所有使用者的Query明細資訊,RAM使用者可以查看自己啟動並執行SQL相關資訊。查詢語句如下:
select usename,status,query_id,command_tag,duration,query,read_bytes,application_name FROM hologres.hg_query_log;
更多Query資訊請參見Query管理。
查詢掃描量
許可權說明
查詢掃描量需要有一定的許可權,其許可權規則和授權方式說明如下:
查詢執行個體所有DB的資料掃描量。
授予使用者Superuser許可權。
Superuser帳號可以查看執行個體所有DB的資料掃描量,授權命令如下:
--將“雲帳號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命令核對詳細資料,執行此命令的帳號需要具有執行個體的Superuser角色。
如果執行個體設定過log_min_duration_statement
參數,將只能查詢到SQL執行時間大於等於log_min_duration_statement
參數值的計費明細。log_min_duration_statement
參數詳細說明請參見慢Query日誌查看與分析的配置項說明,使用如下語句查看log_min_duration_statement
參數的設定情況。
show log_min_duration_statement;
文法樣本
select to_char(query_end,'DD Mon YYYY') as day ,round( sum( case when read_bytes < 10*1024*1024 then 10*1024*1024 else read_bytes end )/1024/1024 ) as "scan_size_mb" -- 每條查詢至少10MB ,count(*) as "sql_count" from hologres.hg_query_log where status = 'SUCCESS' and command_tag in ('SELECT') and read_bytes is not null and query_end >= '開始時間'::TIMESTAMPTZ and query_end < '結束時間'::TIMESTAMPTZ group by 1 order by 3 desc;
使用樣本
例如查詢2022年1月1日10:00至2022年1月1日11:00的掃描資料量的樣本如下。
select to_char(query_end,'DD Mon YYYY') as day ,round( sum( case when read_bytes < 10*1024*1024 then 10*1024*1024 else read_bytes end )/1024/1024 ) as "scan_size_mb" -- 每條查詢至少10MB ,count(*) as "sql_count" from hologres.hg_query_log where status = 'SUCCESS' and command_tag in ('SELECT') and read_bytes is not null and query_end >= '2022-01-01 10:00:00+08'::TIMESTAMPTZ and query_end < '2022-01-01 11:00:00+08'::TIMESTAMPTZ group by 1 order by 3 desc;
查詢一段時間的每條SQL掃描資料量
您可以使用如下SQL命令核對查詢一段時間內每條SQL掃描資料量,執行此命令的帳號需要具有執行個體的Superuser角色。
文法樣本
select usename ,status ,query_id ,datname ,command_tag ,duration ,message ,query_start ,query_end ,query_date ,query ,case when read_bytes < 10*1024*1024 then 10*1024*1024 else read_bytes end as billing_read_bytes -- 每條查詢至少10MB ,application_name from hologres.hg_query_log where status = 'SUCCESS' and command_tag in ('SELECT') and read_bytes is not null and query_end >= '開始時間'::TIMESTAMPTZ and query_end < '結束時間'::TIMESTAMPTZ;
billing_read_bytes欄位即為用於計費的掃描資料量。
使用樣本
例如查詢2022年3月1日10:00至2022年3月1日11:00每條SQL掃描資料量的樣本如下。
select usename ,status ,query_id ,datname ,command_tag ,duration ,message ,query_start ,query_end ,query_date ,query ,case when read_bytes < 10*1024*1024 then 10*1024*1024 else read_bytes end as billing_read_bytes -- 每條查詢至少10MB ,application_name from hologres.hg_query_log where status = 'SUCCESS' and command_tag in ('SELECT') and read_bytes is not null and query_end >= '2022-03-01 10:00:00+08'::TIMESTAMPTZ and query_end < '2022-03-01 11:00:00+08'::TIMESTAMPTZ;