全部產品
Search
文件中心

Hologres:產品定價

更新時間:Jul 30, 2024

本文為您介紹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;