このトピックでは、コンピューティングジョブで消費される従量課金リソースの消費に関する上限とアラートルールを設定する方法について説明します。
説明
MaxCompute の従量課金リソースはスケーラブルです。 コンピューティングジョブは、リソースを無制限に使用できます。 予期せぬ消費を防ぐために、コンピューティングジョブのリソース消費をモニタリングすることを推奨します。 MaxCompute では、リソース消費の上限とアラートルールを設定できます。
SQL 文のリソース消費の上限:MaxCompute では、SQL 文で消費されるリソースの上限を設定できます。 SQL 文を実行する前に、使用可能なリソースを推定できます。 従量課金のコンピューティングリソースを消費する SQL 文と、サブスクリプションのコンピューティングリソースを消費する SQL 文が対象です。 推定リソース消費量が指定された上限を超えた場合、SQL 文を実行できず、失敗メッセージが返されます。 この機能を使用して、SQL 文による予期せぬ料金の発生を防ぐことができます。
リアルタイムのリソース消費のモニタリングとアラート:CloudMonitor を使用すると、標準の SQL、MapReduce、および Spark
コンピューティングジョブに対する請求書が生成される前にリアルタイムでモニタリングできます。 CloudMonitor コンソールでしきい値を指定できます。 CloudMonitor では、消費されたリソースがプロジェクトごとに毎日または毎月モニタリングされます。 課金の詳細については、「コンピューティング料金」をご参照ください。 累計リソース消費量が指定したしきい値を超えると、CloudMonitor から電話、SMS、電子メール、または DingTalk メッセージでアラート通知が送信されます。
説明リアルタイムリソース消費量は、請求書が生成される前のリソースの消費量です。 クーポンや割引は含まれていません。
SQL 文によって消費されるリソースの上限を設定する
プロジェクトまたはセッションに対する SQL 文で消費されるリソースの上限を設定できます。
プロジェクトに対する上限を設定します。
プロジェクト所有者または Super_Administrator ロールが割り当てられているユーザーは、SQL 文のリソース消費量に対して上限を設定、または上限を解除できます。 この設定は、プロジェクト内でリソース消費を推定可能な後続のすべての SQL ジョブに対して適用されます。
-- Impose an upper limit on the resource consumption of an SQL statement. setproject odps.sql.metering.value.max=<m_value>; -- Remove an upper limit from the resource consumption of an SQL statement. setproject odps.sql.metering.value.max;
セッションに対する上限を設定します。
実行する SQL 文とともに以下のコマンドを送信して、SQL 文によって消費されるリソースに上限を設定することができます。 SQL 文の前にコマンドが追加されていない場合、上限は削除されます。 設定は、現在の文に対してのみ適用されます。
set odps.sql.metering.value.max=<m_value>;
m_value で、SQL 文によって消費されるリソースの上限を指定します。 m_value は、以下の式を使用して計算されます:m_value =SQL 文で読み取られたギガバイト数 × SQL 文の複雑さ
m_value は消費料金を示すものではありません。
プロジェクトの SQL 文で使用可能なリソースは、m_value によって制限されます。 SQL 文の推定消費値が m_value の値を超えた場合、SQL 文は実行できません。 外部テーブルが関与する SQL 文など、一部の SQL 文に対してはリソース消費量を推定できません。 この場合、SQL 文に対する消費制御は適用されません。
以下の事項にご注意ください。
SQL 文によって消費されると予想される履歴消費レコードとリソースに基づいて、プロジェクトの m_value を指定することを推奨します。
毎日の消費情報をダウンロードし、データカテゴリが ComputationSql である SQL 文の消費量をプロジェクトで計算するには、以下の式を使用します:SQL 文の消費量 =
SQL 文で読み取られたギガバイト数 × SQL 文の複雑さ
計算後、1 日の最大消費量とビジネス変動に基づいて m_value の値を決定できます。コンピューティングリソースの消費を料金に変換し
、ビジネス要件に基づいて適切な料金を決定し、料金を消費値に変換することもできます。
プロジェクトに対して m_value を指定してから、一部の SQL 文のセッションに対して指定することを推奨します。
説明セッションレベルで SQL 文の上限を設定する前に、この上限が SQL 文に対して必要であることを確認する必要があります。 事前に確認しておくことにより、消費制御の乱用を防止できます。
プロジェクトとそのセッションの両方に上限を設定すると、セッションの設定がプロジェクトの設定よりも優先されます。 たとえば、プロジェクトに対して m_value を 100 に設定し、プロジェクト内のセッションに対して 200 を設定した場合、推定リソース消費量が 200 を超えた場合、SQL 文を実行できません。 セッションレベルの上限が設定されていない SQL 文は、プロジェクトレベルの上限の対象となります。 これらのSQL文は、リソース消費量の推定値が 100 を超える場合、実行できません。
プロジェクトまたはセッションの上限を設定すると、ジョブの実行に悪影響が出ます。 DataWorks のインテリジェントモニタリング機能など、ジョブ障害アラート機能と一緒に消費制御機能を使用することを推奨します。 この方法により、失敗したジョブが直ちに検出および処理され、ジョブがビジネスに与える悪影響を最小限に抑えることができます。
リアルタイムのリソース消費に関するアラートルールを設定する
正常に実行された SQL、MapReduce、または Spark
ジョブの累計リソース消費量は、従量課金リソースの課金式を使用して計算された通常料金に基づいて計算されます。 MaxCompute では、毎日または毎月の累計リソース消費量が計算され、計算された消費量が CloudMonitor にプッシュされます。 CloudMonitor を使用すると、リソース消費をリアルタイムでモニタリングできます。 アラートルールを設定するには、以下の手順を実行します。
CloudMonitor コンソールにログインします。
アラーム送信先を作成します。 アラーム送信先グループが既に作成されている場合は、この手順をスキップできます。 アラーム送信先、およびアラーム送信先グループを作成する方法の詳細については、「アラート連絡先またはアラート連絡先グループの作成」 をご参照ください。
アラートルールを作成します。 詳細については、「アラートルールの作成」をご参照ください。 下表に、リアルタイムリソース消費に関するアラートルールを作成する際に設定が必要なパラメーターを示します。
セクション
パラメーター
説明
関連リソース
プロダクト
このパラメーターを MaxCompute_PayAsYouGo に設定します。
リソース
アラートルールが適用されるリソースです。
全リソース:アラート通知は、プロジェクトがアラートルールを満たした場合に送信されます。
アプリケーショングループ:アラートルールは、指定されたクラウドサービスの指定されたアプリケーショングループ内のすべてのリソースに適用されます。 アラートルールは、新しく追加されたリソースに対して適用されます。
インスタンスリスト:ビジネス要件に基づいてモニタリングするプロジェクトを選択できます。 たとえば、従量課金リソースを使用するプロジェクトをモニタリングできます。 リソースパラメーターをインスタンスに設定することを推奨します。
関連リソース
リソースパラメーターを [インスタンス] に設定した場合、[関連リソース] ドロップダウンリストからプロジェクトを選択します。
ルールの内容
メトリック
このパラメーターを USD での PayAsYouGo ジョブの 1 日の消費量に設定した場合、リソース消費量はプロジェクトごとに 1 日単位で累計されます。
このパラメーターを USD での PayAsYouGo ジョブの月間消費量に設定した場合、リソース消費量はプロジェクトごとに月単位で累計されます。
重要メトリックの測定単位が
CNY
の場合、メトリックは無効です。しきい値
単位は
USD です。 リソース消費量は、従量課金リソースに対する課金の計算式を使用して計算される通常料金です。