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

MaxCompute:消費コントロール

最終更新日:Nov 09, 2025

このトピックでは、MaxCompute の従量課金コンピューティングジョブの消費を管理する方法について説明します。

機能

MaxCompute の従量課金リソースはスケーラブルであり、コンピューティングジョブは制限なくリソースを利用できます。予期せぬ消費を防ぐためには、リソース使用量をモニターすることが不可欠です。MaxCompute は、消費モニタリングのために次のアラートメソッドを提供しています。

消費モニタリングアラートメソッド

消費コントロールメジャー

説明

SQL 文によって消費される最大リソース

リソース消費制限

MaxCompute では、実行前に SQL 文が消費するリソースを見積もることができます。見積もられた消費量が設定された制限を超えた場合、その文は実行されず、失敗メッセージが返されます。この機能は、SQL 文による予期せぬ課金を防ぐのに役立ちます。

日次累積 SQL 消費制限

費用アラート

プロジェクト内の標準 SQL の日次累積消費量をモニターします。その日の累積消費量と新しい標準 SQL の推定消費量の合計がしきい値を超えた場合、新しい SQL の実行は制限され、失敗メッセージが返されます。この機能は、標準 SQL の日次累積消費量が想定を超えるのを防ぐのに役立ちます。

説明

日次累積 SQL 消費とは、未請求で、割引やプロモーションを除外した測定使用量を指します。

SQL 文によって消費される最大リソース

設定メソッド

プロジェクトまたはセッションに対して、SQL 文が消費できるリソースの制限を設定できます。

  • プロジェクトレベルの設定

    プロジェクトのオーナーまたは Super_Administrator ロールを持つユーザーは、次のコマンドを実行して、SQL 文によって消費されるリソースの制限を設定または削除する必要があります。

    --SQL 文によって消費されるリソースの上限を設定します。
    SETPROJECT odps.sql.metering.value.max=<m_value>;
    
    --SQL 文によって消費されるリソースの上限を削除します。
    SETPROJECT odps.sql.metering.value.max;

    m_value は、SQL 文によって消費されるリソースの最大しきい値を表します。これは、SQL 読み取りボリューム (GB) × SQL 複雑度 として計算され、実際の消費額ではありません。

    説明

    SQL 文によって消費されるリソースは m_value によって制限されます。推定消費量が m_value を超えた場合、その文は実行されません。

  • セッションレベルの設定

    実行したい SQL 文と一緒に次のコマンドを送信して、その文によって消費されるリソースの制限を設定します。SQL 文の前にコマンドが追加されない場合、制限は削除されます。この構成は現在の文にのみ適用されます。

    SET odps.sql.metering.value.max=<m_value>;

推奨事項

実際には、次のことをお勧めします。

  • 過去の SQL 消費量と予想される使用量に基づいて、プロジェクトの m_v​​alue を決定します。

    • 詳細な日次メータリング情報をダウンロードし、プロジェクトを粒度として使用して、ComputationSql として分類される SQL タスクのリソース消費量を計算します。これは SQL 読み取りボリューム (GB) × SQL 複雑度 を計算することによって行われます。通常の最高日次消費量とビジネスの変動に基づいて適切な値を選択します。

    • または、コンピューティング消費量を料金に変換します 。ビジネス状況に基づいて適切な料金を決定し、それを消費量に変換します 。

  • まず、プロジェクトの消費制限を設定します。次に、セッションレベルで特定の SQL 文の m_value 制限を設定します。

    説明
    • セッションレベルの消費制限を設定する前に、対応する SQL がこの機能の誤用を防ぐために実際にセッションレベルの制限を必要とすることを確認してください。

    • プロジェクトとセッションの両方に制限を設定した場合、セッション構成がプロジェクト構成よりも優先されます。

      たとえば、プロジェクトの m_value が 100 で、SQL 文のセッションの m_value が 200 の場合、推定消費量が 200 を超えた場合にのみ、その文の実行が制限されます。セッションレベルの制限がない SQL 文はプロジェクトレベルの制限の対象となり、推定リソース消費量が 100 を超えると実行されません。

  • プロジェクトまたはセッションの上限を設定すると、タスクの実行に影響を与える可能性があります。DataWorks の インテリジェントモニタリング などのタスク失敗アラート機能を利用して、タスクの失敗を迅速に検出し、手動で介入することをお勧めします。これにより、重要なタスクが妨げられず、ビジネス運用に影響が出ないようにします。

日次累積 SQL 消費制限

設定メソッド

プロジェクトの日次累積 SQL 消費制限を設定するには、次のコマンドを使用します。このコマンドは、プロジェクトのオーナーまたは Super_Administrator ロールを持つユーザーのみが実行できます。

SETPROJECT odps.costcontrol.rule={"byDate":{"sql":<Limit>}};
  • byDate: 日次累積。当日の 00:00:00 から 23:59:59 までの累積消費量は UTC + 08:00 に基づいて計算されます。累積消費量は翌日にリセットされます。

  • Limit: プロジェクト内の標準 SQL の日次累積消費しきい値。単位は USD です。このしきい値には、割引やプロモーションは考慮されません。

    説明

    単一 SQL 文の消費量 = スキャンデータ量 (GB) × 複雑度 × 0.0438。SAU (リヤド - パートナーリージョン) では、SQL の標準課金価格は 0.05256 USD/GB です。

考慮事項

上記のコマンドを実行した後、次のルールに注意してください。

ルールタイプ

システムの動作

例とアラートの推奨事項

初回設定

システムは、プロジェクト内のすべての標準 SQL 文の当日の累積消費量を計算し、新しい標準 SQL 文の消費量を見積もります。

例: プロジェクトレベルで初めて SETPROJECT odps.costcontrol.rule={"byDate":{"sql":100}}; を設定すると、システムは日次累積消費量の計算と新しいタスクの消費量の見積もりを開始します。

初回以外の設定 (既存の値の変更)

新しい SQL 文の推定消費量は、累積消費量と最新の値に対して検証され、実行が制限されるかどうかが判断されます。累積消費量はリセットされません。

元の日次累積 SQL 消費制限が 100 で、当日の累積消費量が 99 の場合に、新しい標準 SQL 文を開始する前に制限を 150 に変更したとします。

システムはまずこの SQL のコストを見積もります (20 と仮定)。推定消費量と累積消費量の合計 (20+99) が 150 以下の場合、SQL は正常に実行できます。それ以外の場合はブロックされます。

累積消費量と推定消費量が Limit を超えた場合

新しい標準 SQL タスクはブロックされ、実行できません。エラーメッセージが返されます。

  • エラー例:

    コマンド setproject odps.costcontrol.rule={"byDate":{"sql":100}}; を実行して消費制限を設定した場合、プロジェクト内の標準 SQL 文の日次累積消費量が制限を超えるとエラーが返されます。エラーメッセージは次のとおりです。

    Exceed Cost Limit : 
    {"AlreadyCost":"100.1","InstanceId":"xxx","Limit":"100","Project":"xxx","TaskType":"SQL","ThisTaskWillCost":"0","TimeWindow":"BYDATE"}
  • 推奨事項:

    DataWorks の インテリジェントモニタリング などのタスク失敗アラート機能を使用して、タスクの失敗を迅速に検出し、手動介入を可能にすることをお勧めします。これにより、重要なタスクが妨げられ、ビジネス運用に影響が及ぶのを防ぐことができます。