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

Hologres:課金

最終更新日:Jan 11, 2025

このトピックでは、Hologres 共有クラスタ (Lakehouse Acceleration Edition) インスタンスの課金について説明します。

課金方法

Hologres 共有クラスタ (Lakehouse Acceleration Edition) はサーバーレスモードで動作し、MaxCompute データウェアハウスのデータとオブジェクトストレージサービス (OSS) データレイクのデータに対するクエリの高速化に役立ちます。また、MaxCompute と OSS のデータに対するフェデレーテッドクエリもサポートしています。Hologres 共有クラスタ (Lakehouse Acceleration Edition) の課金方法は、Hologres 共有クラスタ (BI ベースの MaxCompute Acceleration Edition) と同じです。SQL クエリのジョブを実行するたびに、Hologres はジョブの入力データ量に基づいて料金を計算します。

料金は次の式を使用して計算されます。

Fees for a query job = Amount of input data × Unit price
説明
  • Hologres 共有クラスタ (Lakehouse Acceleration Edition) は専用のコンピューティングリソースを使用します。

  • Hologres 共有クラスタ (Lakehouse Acceleration Edition) は、クエリジョブごとにスキャンされたデータ量に基づいて課金されます。クエリ起動のオーバーヘッドによりクエリジョブでスキャンされたデータ量が 10 MB に達しない場合でも、クエリジョブごとに課金されるデータ量の最小値は 10 MB です。

  • システムは 1 時間ごとに請求書を送信します。各請求書には、2 時間前に発生した料金が記録されます。

  • クエリが実行されない場合は、料金は発生しません。

  • パーティションテーブルからデータをクエリする場合、フィルターを設定して、データのクエリ元のパーティションを指定できます。これは、スキャンされるデータ量を削減し、クエリのパフォーマンスを向上させるのに役立ちます。

  • クエリフィールドの数を減らし、フィルター条件を追加することで、スキャンされるデータ量を減らしてクエリコストを削減できます。

  • MaxCompute テーブルをハッシュクラスタテーブルに変換できます。ハッシュクラスタテーブルは、バケットプルーニング、集計、およびストレージの最適化に役立ちます。ハッシュクラスタテーブルの詳細については、ハッシュクラスタリングをご参照ください。

料金

説明

2023 年 3 月 8 日から 2025 年 4 月 1 日までは、Hologres 共有クラスタ (Lakehouse Acceleration Edition) は 50% の割引を提供しています。

次の表に料金情報を示します。

Billing method

Region

Original unit price

Promotional unit price

Unit

Pay-as-you-go based on the amount of data scanned per SQL query job

China (Beijing)

0.066705

0.0333525

USD/GB

China (Shanghai)

0.066705

0.0333525

USD/GB

China (Hangzhou)

0.066705

0.0333525

USD/GB

China (Shenzhen)

0.066705

0.0333525

USD/GB

Singapore

0.084049

0.0420245

USD/GB

ライフサイクル管理

Hologres 共有クラスタ (Lakehouse Acceleration Edition) は、SQL ステートメントを使用してスキャンされたデータ量に基づく従量課金制を使用します。従量課金制の Hologres 共有クラスタ (Lakehouse Acceleration Edition) インスタンスのライフサイクル管理は、次のルールに準拠しています。

  • 国際サイト (alibabacloud.com) で Hologres 共有クラスタ (Lakehouse Acceleration Edition) インスタンスを購入した後、インスタンスを使用できます。システムは前日におけるすべての SQL ステートメントによってスキャンされたデータの合計量を要約し、請求書を送信します。システムは、Alibaba Cloud アカウントの残高から支払金額を自動的に差し引きます。

  • Alibaba Cloud アカウントに延滞料金がある場合、Alibaba Cloud アカウントに属するすべてのインスタンスが延滞になります。延滞料金が 1,000 米ドル未満の場合は、インスタンスは正常に実行されます。

  • アカウントの延滞料金が 1,000 米ドルに達し、差し引きに失敗した場合、インスタンスは 14 日以内は正常に実行されます。

  • 差し引きに失敗してから 15 日目に、インスタンスはサービスの提供を停止し、ロックされます。インスタンスにアクセスできなくなります。この期間中、システムは請求書を送信しません。

  • 延滞料金のためにインスタンスがサービスの提供を停止してから 15 日目に、インスタンスは解放され、コンソールから削除されます。インスタンス内のデータも削除され、復元できません。

SQL クエリに関する情報のクエリ

スーパーユーザーとして、すべてのユーザーのクエリ詳細を表示できます。RAM ユーザーは、実行した SQL ステートメントに関する情報を表示できます。ステートメントの例:

select usename,status,query_id,command_tag,duration,query,read_bytes,application_name FROM hologres.hg_query_log;

SQL クエリの詳細については、クエリの管理をご参照ください。

スキャンされたデータ量のクエリ

説明

スキャンされたデータ量をクエリするには、特定の権限が必要です。このセクションでは、権限ルールと承認方法について説明します。

  • インスタンス内のすべてのデータベースのスキャンされたデータ量をクエリします。

    • スーパーユーザー権限をユーザーに付与します。

      スーパーユーザーは、インスタンス内のすべてのデータベースのスキャンされたデータ量を表示できます。次のステートメントを実行して、スーパーユーザーロールをユーザーに割り当てます。

      -- アカウント ID を Alibaba Cloud アカウント ID に置き換えます。ユーザーが RAM ユーザーの場合は、アカウント ID の前に p4_ を付けます。
      ALTER USER "Account ID" SUPERUSER;
    • 別のユーザーを pg_read_all_stats ユーザーグループに追加します。

      スーパーユーザーに加えて、pg_read_all_stats ユーザーグループのユーザーは、関連する Hologres インスタンス内のすべてのデータベースのスキャンされたデータ量をクエリする権限を持っています。スーパーユーザーの場合は、このユーザーグループに通常のユーザーを追加できます。このユーザーグループにユーザーを追加するには、次のステートメントのいずれかを実行します。

      GRANT pg_read_all_stats TO "Account ID";-- 標準の PostgreSQL 承認モデルを使用して、関連する権限をユーザーに付与します。
      CALL spm_grant('pg_read_all_stats', 'Account ID'); -- シンプルパーミッションモデル (SPM) を使用して、関連する権限をユーザーに付与します。
      CALL slpm_grant('pg_read_all_stats', 'Account ID'); -- スキーマレベルパーミッションモデル (SLPM) を使用して、関連する権限をユーザーに付与します。
  • 指定されたデータベースのスキャンされたデータ量を表示します。

    db_admin ユーザーグループのユーザーは、関連する Hologres インスタンス内の指定されたデータベースのスキャンされたデータ量をクエリする権限を持っています。スーパーユーザーの場合は、SPM または SLPM を使用して、このユーザーグループに通常のユーザーを追加できます。

    CALL spm_grant('<db_name>_admin', 'Account ID'); -- SPM を使用して、関連する権限をユーザーに付与します。
    CALL slpm_grant('<db_name>.admin', 'Account ID'); -- SLPM を使用して、関連する権限をユーザーに付与します。
  • 通常のユーザーは、関連する Alibaba Cloud アカウント内のデータベースについて、自分自身でスキャンされたデータ量をクエリする権限を持っています。

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

一定期間にわたってスキャンされたデータ量をクエリする

次の SQL ステートメントを実行して、詳細データを確認できます。SQL ステートメントを実行するユーザーに、Hologres 共有クラスタ (BI ベースの MaxCompute Acceleration Edition) インスタンスのスーパーユーザーロールが割り当てられていることを確認してください。

重要

インスタンスに log_min_duration_statement パラメーターが設定されている場合、SQL ステートメントを使用してスキャンされたデータ量に基づいて生成された請求書の詳細のみをクエリできます。ステートメントの実行時間は、log_min_duration_statement パラメーターで指定された値以上である必要があります。log_min_duration_statement パラメーターの詳細については、低速クエリログのクエリと分析 で説明されている構成項目をご参照ください。次のステートメントを実行して、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" -- クエリジョブごとに少なくとも 10 MB のデータをスキャンします。
            ,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;
  • 次の SQL ステートメントを実行して、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" -- クエリジョブごとに少なくとも 10 MB のデータをスキャンします。
            ,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 ステートメントを使用してスキャンされたデータ量をクエリできます。SQL ステートメントを実行するユーザーに、Hologres 共有クラスタ (BI ベースの MaxCompute Acceleration Edition) インスタンスのスーパーユーザーロールが割り当てられていることを確認してください。

  • 構文

    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 -- 各 SQL ステートメントで少なくとも 10 MB のデータをスキャンします。
            ,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 フィールドは、課金に使用されるスキャンされたデータ量を示します。

  • 次の SQL ステートメントを実行して、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 -- 各 SQL ステートメントで少なくとも 10 MB のデータをスキャンします。
            ,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;