すべてのプロダクト
Search
ドキュメントセンター

Hologres:サーバーレスコンピューティングのリソース使用量と課金

最終更新日:Feb 04, 2026

Hologres のサーバーレスコンピューティングは、CPU やメモリのオーバーヘッドが高い SQL ジョブなど、大規模な SQL ジョブに対して、消費された計算リソースと使用期間に基づいて課金されます。このトピックでは、サーバーレスコンピューティングのリソース使用量と課金の詳細を確認する方法について説明します。

課金の概要

各 SQL ジョブに対して、サーバーレスコンピューティングはリソース使用量を CU·H (実際のリソース量 × 使用期間) で測定します。課金は 1 時間ごとに処理されます。毎時、システムは前の 1 時間にサーバーレスコンピューティングを使用して実行されたすべての SQL ジョブの使用量を集計し、それに応じて課金します。現在の単価については、「課金の概要」をご参照ください。

重要
  • サーバーレスコンピューティングの課金は 2024-07-01 (UTC+08:00) に開始されました。このドキュメントでは、サーバーレスコンピューティングのリソース使用量をモニタリングし、請求額を見積もり、予期せぬコストを防ぐためにジョブへのリソース割り当てを調整する方法について説明します。

  • サポートされているリージョンとゾーンのリストについては、「サーバーレスコンピューティングユーザーガイド」をご参照ください。

  • hologres.hg_query_loghologres.hg_serverless_computing_query_log は、どちらも過去 30 日間のデータを保持します。

正常に実行された SQL ジョブのみが課金対象となります。失敗した実行は課金されません。

リソース使用量のクエリ

Hologres V2.1.18 以降では、hologres.hg_serverless_computing_query_log ビューをクエリして、サーバーレスコンピューティングのリソース使用量を計算し、サーバーレス課金数式を使用してコストを見積もることができます。スロークエリログの詳細については、「スロークエリログの表示と分析」をご参照ください。

説明
  • Hologres V2.2.7 より前では、スロークエリログには、失敗したすべてのサーバーレスコンピューティングジョブと、100 ミリ秒を超えて実行された成功したジョブが記録されていました。Hologres V2.2.7 以降、ログにはすべてのサーバーレスコンピューティングジョブが含まれるようになりました。

  • スロークエリログは、各 SQL 文のリソース使用量を記録します。課金時に、システムはデータ集約と単位変換を適用する場合があり、これによりわずかな差異が生じることがあります。

権限要件

スロークエリログからサーバーレスコンピューティングの使用量と課金を見積もるには、特定の権限が必要です。以下に、権限ルールと権限付与のメソッドについて説明します。

  • インスタンス内のすべてのデータベースにわたるデータスキャン量のをクエリする

    • メソッド 1:次のコマンドを使用してスーパーユーザー権限を付与します。

      -- "Alibaba Cloud account ID" を実際のユーザー名に置き換えます。
      -- RAM ユーザーの場合、アカウント ID の前に "p4_" を付けます。
      ALTER USER "Alibaba Cloud account ID" SUPERUSER;
    • メソッド 2:次のコマンドを使用してユーザーを pg_read_all_stats グループに追加します。

      説明

      スーパーユーザー権限に加えて、Hologres はすべてのデータベースにわたるデータスキャン量を表示するための pg_read_all_stats グループをサポートしています。すべてのログにアクセスする必要がある一般ユーザーの場合は、スーパーユーザーに連絡して権限付与を受け、グループに追加してもらう必要があります。

      GRANT pg_read_all_stats TO "Alibaba Cloud account ID";-- 標準 PostgreSQL 権限付与モデル
      CALL spm_grant('pg_read_all_stats', 'Alibaba Cloud account ID');  -- SPM
      CALL slpm_grant('pg_read_all_stats', 'Alibaba Cloud account ID'); -- SLPM
  • 現在のデータベースのデータスキャン量を表示する

    • 簡易権限モデル (SPM) または スキーマレベルの簡易権限モデル (SLPM) を有効にし、ユーザーを db_admin グループに追加します。db_admin ロールは、現在のデータベースのデータスキャン量を表示できます。次のコマンドを使用できます。

      CALL spm_grant('<db_name>_admin', 'Alibaba Cloud account ID');  -- SPM
      CALL slpm_grant('<db_name>.admin', 'Alibaba Cloud account ID'); -- SLPM
    • 一般ユーザーは、自分のアカウントに関連付けられたデータベース内で自身のデータスキャン量をクエリできます。

説明

権限の詳細については、「権限管理の概要」をご参照ください。

単一 SQL 文のリソース使用量のクエリ

次の SQL コマンドを使用して、サーバーレスコンピューティングジョブの詳細なリソース使用量を取得できます。

SELECT
    *,
    queue_time_ms,	-- SQL がサーバーレスコンピューティングのキューで待機した時間 (ミリ秒)
    serverless_allocated_cores,	-- サーバーレスコンピューティングがこの SQL ジョブに割り当てた CU 数
    serverless_resource_used_time_ms, -- SQL が実際にサーバーレスコンピューティングリソースを使用した時間 (ミリ秒)
    (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 コマンドを使用して、特定のタイムウィンドウ内で正常に実行されたサーバーレスコンピューティングジョブの総リソース使用量を計算できます。

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';-- 時間範囲を指定します

リソース使用量の見積もり

サーバーレスコンピューティングを有効にしていないが、特定の SQL 文をサーバーレスリソースで実行した場合のコストを見積もりたい場合は、まず Hologres インスタンスのリソースを使用して実行できます。hologres.hg_query_log システムテーブルには cpu_time_ms フィールドが含まれており、各 SQL ジョブが消費した CPU 時間を記録します。次の数式を使用して、サーバーレスリソースの使用量をおおよそ見積もることができます:cpu_time_ms / 1000 / 60 / 60。次のコマンドを使用して cpu_time_ms をクエリできます。

SELECT cpu_time_ms FROM hologres.hg_query_log WHERE query_id = 'xxx';
説明

インスタンスリソースは他のワークロードの影響を受ける可能性がありますが、サーバーレスリソースは分離されています。2 つのリソースタイプのリソース容量も異なります。これらの理由から、このメソッドではサーバーレスの使用量を正確に見積もることはできません。「サーバーレスコンピューティングユーザーガイド」で説明されているように、主要な SQL ジョブを選択し、サーバーレスコンピューティングで直接テストすることを推奨します。これらのテストは、ご利用のインスタンス上の他のタスクに影響を与えません。

使用量のモニタリングとアラート

1 日あたりの使用量上限

Hologres V3.1.5 以降、次の SQL コマンドを使用して、1 日あたりのサーバーレスコンピューティングの使用量を制限できます。これらの上限を設定できるのはスーパーユーザーのみです。

-- データベースの上限を設定
ALTER DATABASE <db_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = xx;

-- ユーザーの上限を設定
ALTER USER <user_name> SET hg_serverless_computing_daily_max_cuh_usage_threshold = xx;
  • 上限の詳細

    • デフォルト値は -1 で、上限が設定されていないことを示します。

    • 単位は CU·H です。

    • Hologres は、インスタンスのサーバーレスコンピューティングの総使用量を 10 分ごとに集計して更新します。そのため、上限の適用には最大 10 分の遅延が生じる可能性があります。

    • SQL 文を実行する前に、Hologres はインスタンスの現在の 1 日あたりのサーバーレス使用量を、ユーザーまたはデータベースに設定された上限と比較します。上限に達した場合、SQL 文は自動的にインスタンスの計算リソースを使用するようにフォールバックします。それ以外の場合、SQL 文はサーバーレスリソースで実行されます。

    • Hologres は、データベースのデフォルトのタイムゾーンに基づいて 1 日あたりのサーバーレス使用量を追跡します。同じセッションで次のコマンドを実行して、現在のデータベースのタイムゾーンを確認できます。

      -- クライアントまたはユーザー設定の影響を避けるためにタイムゾーンをリセット
      RESET timezone;
      
      -- データベースのデフォルトのタイムゾーンを表示
      SHOW timezone;
  • 推奨事項

    • Hologres のサーバーレスコンピューティングを定期的に使用する場合は、「指定した期間のリソース使用量のクエリ」で説明されている使用状況情報を確認することで、適切な 1 日あたりの上限を決定できます。

    • サーバーレスコンピューティングを初めて使用する場合は、ワークロードが安定するまで待ってから 1 日あたりの使用量上限を設定することを推奨します。

上限を超えた場合にクエリが自動的にインスタンスリソースにフォールバックするのを防ぎ、代わりにクエリを即座に失敗させるには、次のコマンドを実行します。このパラメーターを設定できるのはスーパーユーザーのみです。

-- データベースレベルで設定
ALTER DATABASE <db_name> SET hg_serverless_computing_enable_fallback_when_exceed_cuh_threshold = false;

-- ユーザーレベルで設定
ALTER USER <user_name> SET hg_serverless_computing_enable_fallback_when_exceed_cuh_threshold = false;
説明
  • デフォルト値は `true` で、上限を超えた場合にインスタンスリソースへの自動フォールバックを有効にします。

  • このパラメーターを `false` に設定すると、クエリは失敗し、次のエラーが報告されます:serverless computing is not available due to exceeding cuh usage threshold, please adjust the threshold or turn off serverless computing for current query

コスト分析

[費用とコスト] の コスト > コスト分析 モジュールを使用して、Hologres 計算リソースの課金をモニタリングおよび分析できます。

  1. [費用とコスト] にログインします。左側のナビゲーションウィンドウで、コスト > コスト分析 をクリックします。

  2. [コスト分析] ページで、右側の 条件リスト > 分類ディメンション セクションで、請求項目 を選択します。次に、必要に応じて コストタイプ時間粒度 を選択します。

  3. 右側の フィルター条件 セクションで、リソースタイプに基づいて適切な 請求項目 を選択します。

詳細については、「コスト分析」をご参照ください。

支出アラート

Alibaba Cloud が提供する [費用とコスト] サービスを使用して、予算を管理し、特定のリージョンの特定のプロダクトの従量課金支出に対するアラートを設定できます。詳細については、「支出アラート」をご参照ください。

単一 SQL 実行時間のアラート

Hologres は、サーバーレスコンピューティングメトリックのモニタリングをサポートしています。ビジネスシナリオに基づいてアラートルールを作成し、予期せぬ料金を回避することを推奨します。

たとえば、メトリック 実行中のサーバーレスコンピューティングクエリの最長期間 については、次のアラートルールを推奨します。

警告:実行中のサーバーレスコンピューティングクエリの最長期間が 5 期間連続 (1 期間 = 1 分) で 3,600,000 ミリ秒以上。

jiankong.jpg

詳細については、「モニタリングとアラートのベストプラクティス」をご参照ください。

関連ドキュメント