MaxCompute は、SQL、MapReduce、Spark、Mars、および MaxCompute Query Acceleration (MCQA) ジョブに対して従量課金方式をサポートしています。
支払い遅延が発生した場合、システムから通知が送信されます。サービスの停止を防ぐため、できるだけ早くサブスクリプションサービスを更新する必要があります。
MaxCompute は、以下の課金方法をサポートしています。
従量課金: ジョブで消費されたリソースに基づいて、ジョブごとに課金されます。この課金方法は、標準 SQL ジョブ、外部テーブルを参照する SQL ジョブ、MapReduce ジョブ、Spark ジョブ、Mars ジョブ、および MCQA ジョブに使用されます。
サブスクリプション: 特定のリソースをサブスクライブできます。
MaxCompute は、SQL、MapReduce、Spark、Mars、MCQA、Graph、および機械学習ジョブをサポートしています。 SQL、MapReduce、Spark ジョブは課金対象となりますが、ユーザー定義関数 (UDF) は課金対象となりません。 2020 年 9 月 1 日から Mars ジョブが課金対象となります。 2020 年 10 月 1 日から MCQA ジョブが課金対象となります。 その他のタイプのコンピューティングジョブは課金対象となりません。
サブスクリプション
特定のリソースをサブスクライブできます。 MaxCompute は、サブスクライブしたリソースを予約します。 コンピューティングリソースは、計算ユニット (CU) 単位で測定されます。 1 CU は、4 GB のメモリと 1 CPU コアに相当します。 サブスクリプション課金方法は、SQL、MapReduce、Spark ジョブなど、ジョブで消費されるコンピューティングリソースに使用されます。
リソース | メモリサイズ | CPU コア | 料金 (USD/月) |
1 CU | 4 GB | 1 | 22.0 |
サブスクリプションコンピューティングリソースを購入した後、リソースオブザベーションを使用してリソースを監視および管理できます。 詳細については、「リソースオブザベーションを使用する」をご参照ください。
MaxCompute を初めて使用する場合は、従量課金方式を選択することをお勧めします。 サブスクリプション課金方式を選択した場合は、特定量のコンピューティングリソースを購入します。 新規ユーザーの場合は、購入したリソースよりも消費するリソースが少ない場合があります。 一部のリソースはアイドル状態のままになる可能性があります。 この場合は、従量課金方式を使用することをお勧めします。 従量課金方式では、消費したリソースの量に基づいて課金されるため、費用対効果が高くなります。
標準 SQL ジョブの課金
SQL ジョブを実行するたびに、MaxCompute は [コンピューティングの入力データ量] と [SQL の複雑さ] に基づいて料金を計算します。 翌日、MaxCompute は実行されたすべての SQL ジョブの料金を Alibaba Cloud アカウント内の 1 つの請求書に集計します。 その後、MaxCompute は Alibaba Cloud アカウントの残高から料金を差し引きます。
MaxCompute は、次の式に基づいて標準 SQL ジョブの料金を計算します。
標準 SQL ジョブの料金 = コンピューティングの入力データ量 × SQL の複雑さ × 標準 SQL ジョブの単価
次の表に、標準 SQL ジョブの単価を示します。
項目 | 単価 |
標準 SQL ジョブ | 0.0438 USD/GB 説明 SAU (リヤド - パートナーリージョン) リージョンはパートナーによって運営されており、単価は 0.05256 USD/GB です。 |
[コンピューティングの入力データ量]: SQL ジョブによってスキャンされたデータ量。 ほとんどの SQL ジョブは、パーティションフィルタリングとカラムプルーニングをサポートしています。 したがって、ほとんどの場合、この値はソーステーブルのデータ量よりも少なくなります。
パーティションフィルタリング:
WHERE ds > 20130101
句を含む SQL 文を送信した場合。 句のds
はパーティションキー列です。 読み取られるパーティションのデータに対してのみ課金されます。カラムプルーニング: SQL 文
SELECT f1,f2,f3 FROM t1;
を送信した場合、テーブル t1 の列 f1、f2、f3 のデータに対してのみ課金されます。 他の列のデータに対しては課金されません。
[SQL の複雑さ]: SQL ジョブの複雑さは、SQL ジョブの SQL 文のキーワードの数に基づいて計算されます。
SQL キーワードの数 = JOIN 句の数 + GROUP BY 句の数 + ORDER BY 句の数 + DISTINCT 句の数 + ウィンドウ関数の数 +
MAX(INSERT 文の数|UPDATE 文の数|DELETE 文の数 - 1, 1)
。SQL の複雑さの計算:
SQL キーワードの数が 3 以下の場合、SQL ジョブの複雑さは 1 です。
SQL キーワードの数が 4 以上 6 以下の場合、SQL ジョブの複雑さは 1.5 です。
SQL キーワードの数が 7 以上 19 以下の場合、SQL ジョブの複雑さは 2 です。
SQL キーワードの数が 20 以上の場合、SQL ジョブの複雑さは 4 です。
SQL キーワードの詳細については、「JOIN」、「GROUP BY」、「ORDER BY」、「ウィンドウ関数」、「INSERT」、および「UPDATE と DELETE」をご参照ください。
次のコマンドを実行して、SQL ジョブの複雑さを計算できます。
COST SQL <SQL 文>;
次のコマンドは、SQL ジョブの複雑さを計算する方法の例を示しています。
odps@ $odps_project >COST SQL SELECT DISTINCT total1 FROM
(SELECT id1, COUNT(f1) AS total1 FROM in1 GROUP BY id1) tmp1
ORDER BY total1 DESC LIMIT 100;
Intput:1825361100.8 Bytes
Complexity:1.5
この例では、キーワードの数は次の式に基づいて計算されます。1 DISTINCT 句 + 1 GROUP BY 句 + 1 ORDER BY 句 + MAX(0 - 1, 1) = 4。 SQL ジョブの複雑さは 1.5 です。 計算が必要なデータ量が 1.7 GB の場合、料金は次の式に基づいて計算されます。
1.7 × 1.5 × 0.0438 = 0.11 USD
請求書は翌日の 06:00 より前に生成されます。
失敗した SQL ジョブに対しては課金されません。
SQL ジョブは、ストレージサービスと同様に、圧縮後のデータ量に基づいて課金されます。
外部テーブルを参照する SQL ジョブの課金
2019 年 3 月以降、外部テーブルを参照する MaxCompute SQL ジョブは、従量課金方式に基づいて課金されます。
外部テーブルを参照する SQL ジョブは、次の式を使用して課金されます。
SQL ジョブの料金 = コンピューティングの入力データ量 × 外部テーブルを参照する SQL ジョブの単価
次の表に、外部テーブルを参照する SQL ジョブの単価を示します。
項目 | 単価 |
標準 SQL ジョブ | 0.0044 USD/GB 説明 SAU (リヤド - パートナーリージョン) リージョンはパートナーによって運営されており、単価は 0.00528 USD/GB です。 |
SQL の複雑さは 1 です。翌日、MaxCompute は実行されたすべての SQL ジョブの料金を Alibaba Cloud アカウント内の 1 つの請求書に集計します。
請求書は翌日の 06:00 より前に生成されます。
内部テーブルと外部テーブルを参照するジョブの場合、MaxCompute は内部テーブルを参照するジョブと外部テーブルを参照するジョブの料金を個別に計算します。
外部テーブルを参照する SQL ジョブの料金を見積もることはできません。
MapReduce ジョブの従量課金
2017 年 12 月 19 日以降、MaxCompute MapReduce ジョブは、従量課金方式に基づいて課金されます。
MapReduce ジョブは、次の式を使用して課金されます。
1 日の MapReduce ジョブの料金 = 課金時間数 × MapReduce ジョブの単価 (USD/時間)
次の表に、MaxCompute MapReduce ジョブの単価を示します。
項目 | 単価 |
MapReduce ジョブ | 0.0690 USD/時間 説明 SAU (リヤド - パートナーリージョン) リージョンはパートナーによって運営されており、単価は 0.0828 USD/時間です。 |
MapReduce ジョブの課金時間数は、次の式に基づいて計算されます。
MapReduce ジョブの課金時間数 = ジョブの実行時間数 × ジョブで消費された CPU コア数
たとえば、0.5 時間実行される MapReduce ジョブが 100 CPU コアを消費する場合、課金時間数は次の式に基づいて 50 になります。100 コア × 0.5 時間 = 50
。
MapReduce ジョブの実行後、MaxCompute はジョブの課金時間を計算します。 翌日、MaxCompute は実行されたすべての MapReduce ジョブの料金を Alibaba Cloud アカウント内の 1 つの請求書に集計します。 その後、MaxCompute は Alibaba Cloud アカウントの残高から料金を差し引きます。
請求書は翌日の 06:00 より前に生成されます。
失敗した MapReduce ジョブに対しては課金されません。
ジョブのキューイング時間は課金時間に含まれません。
MaxCompute のサブスクリプション課金方式を選択した場合、サブスクリプション期間中は MapReduce ジョブを無料で実行できます。
Spark ジョブの従量課金
2019 年 2 月 1 日以降、Spark ジョブは、従量課金方式に基づいて課金されます。 詳細については、「Spark on MaxCompute の概要」をご参照ください。 Spark ジョブは、次の式に基づいて課金されます。
1 日の Spark ジョブの料金 = 課金時間数 × 単価 (0.1041 USD/時間)
次の表に、Spark ジョブの単価を示します。
項目 | 単価 |
Spark ジョブ | 0.1041 USD/時間 説明 SAU (リヤド - パートナーリージョン) リージョンはパートナーによって運営されており、単価は 0.12492 USD/時間です。 |
Spark ジョブの課金時間数は、次の式に基づいて計算されます。
Spark ジョブの課金時間数 = MAX[CPU コア数 × ジョブの実行時間数、ROUND UP(メモリサイズ × ジョブの実行時間数/4)]
次の点に注意してください。
消費された CPU コア数、ジョブの実行時間数、およびメモリサイズを指定する必要があります。
課金時間 1 時間は、1 CPU コアと 4 GB のメモリに相当します。
たとえば、1 時間実行される Spark ジョブが 2 CPU コアと 5 GB のメモリを消費する場合、課金時間数は次の式に基づいて 2 になります。MAX[2 × 1, ROUND UP(5 × 1/4)] = 2
。 1 時間実行される Spark ジョブが 2 CPU コアと 10 GB のメモリを消費する場合、課金時間数は次の式に基づいて 3 になります。MAX[2 × 1, ROUND UP(10 × 1/4)] = 3
。
Spark ジョブの実行後、MaxCompute はジョブの課金時間を計算します。 翌日、MaxCompute は実行されたすべての Spark ジョブの料金を Alibaba Cloud アカウント内の 1 つの請求書に集計します。 その後、MaxCompute は Alibaba Cloud アカウントの残高から料金を差し引きます。
請求書は翌日の 06:00 より前に生成されます。
ジョブのキューイング時間は課金時間に含まれません。
類似のジョブの料金は、指定されたリソースの量によって異なる場合があります。
MaxCompute のサブスクリプション課金方式を選択した場合、サブスクリプション期間中は Spark ジョブを無料で実行できます。
Mars ジョブの従量課金
2020 年 9 月 1 日以降、MaxCompute Mars ジョブは、従量課金方式に基づいて課金されます。 詳細については、「概要」をご参照ください。 Mars ジョブは、次の式に基づいて課金されます。
1 日の Mars ジョブの料金 = 課金時間数 × 単価 (0.1041 USD/時間)
次の表に、Mars ジョブの単価を示します。
項目 | 単価 |
Mars ジョブ | 0.1041 USD/時間 説明 SAU (リヤド - パートナーリージョン) リージョンはパートナーによって運営されており、単価は 0.12492 USD/時間です。 |
Mars ジョブの課金時間数は、次の方法で計算されます。
ジョブで消費される CPU コア数とメモリサイズを計算します。
課金時間 1 時間は、1 CPU コアと 4 GB のメモリに相当します。
Mars ジョブの課金時間数は、次の式に基づいて計算されます。
MAX[CPU コア数 × ジョブの実行時間数、ROUND UP(メモリサイズ × ジョブの実行時間数/4)]
。たとえば、1 時間実行される Mars ジョブが 2 CPU コアと 5 GB のメモリを消費する場合、課金時間数は次の式に基づいて 2 になります。
MAX[2 × 1, ROUND UP(5 × 1/4)] = 2
。 1 時間実行される Mars ジョブが 2 CPU コアと 10 GB のメモリを消費する場合、課金時間数は次の式に基づいて 3 になります。MAX[2 × 1, ROUND UP(10 × 1/4)] = 3
。
Mars ジョブの実行後、MaxCompute はジョブの課金時間を計算します。 翌日、MaxCompute は実行されたすべての Mars ジョブの料金を Alibaba Cloud アカウント内の 1 つの請求書に集計します。 その後、MaxCompute は Alibaba Cloud アカウントの残高から料金を差し引きます。
請求書は翌日の 06:00 より前に生成されます。
ジョブのキューイング時間は課金時間に含まれません。
類似のジョブの料金は、指定されたリソースの量によって異なる場合があります。
MaxCompute のサブスクリプション課金方式を選択した場合、サブスクリプション期間中は Mars ジョブを無料で実行できます。
MCQA ジョブの従量課金
2020 年 10 月 1 日以降、MCQA ジョブは、従量課金方式に基づいて課金されます。 詳細については、「概要」をご参照ください。
MCQA ジョブを実行するたびに、MaxCompute はジョブの入力データ量に基づいて料金を計算します。 翌日、MaxCompute は実行されたすべての MCQA ジョブの料金を集計します。
MCQA ジョブは、次の式に基づいて課金されます。
MCQA ジョブの料金 = MCQA ジョブの入力データ量 × 単価 (0.0438 USD/GB)
次の表に、MCQA ジョブの単価を示します。
項目 | 単価 |
MCQA ジョブ | 0.0438 USD/GB 説明 SAU (リヤド - パートナーリージョン) リージョンはパートナーによって運営されており、単価は 0.05256 USD/GB です。 |
MCQA ジョブは専用のコンピューティングリソースを使用します。 MaxCompute のサブスクリプション課金方式を選択した場合、MCQA ジョブの実行時に、MaxCompute は MCQA ジョブによってスキャンされたデータ量に基づいて料金を計算します。
MaxCompute は、各 MCQA ジョブによってスキャンされたデータ量に基づいて料金を計算します。 各 MCQA ジョブは少なくとも 10 MB のデータをスキャンします。 キャンセルされた MCQA ジョブは、スキャンされたデータ量に基づいて課金されます。
請求書は翌日の 06:00 より前に生成されます。
クエリが実行されない場合、料金は発生しません。
デフォルトでは、MaxCompute はデータに対して列指向のストレージと圧縮を実行します。 MaxCompute は、圧縮データに基づいてスキャンされたデータ量を計算します。
パーティションテーブルをクエリする場合、パーティションフィルタリング条件を使用してスキャンされるデータ量を削減し、クエリのパフォーマンスを向上させることができます。
MCQA は、中国 (香港)、シンガポール、インドネシア (ジャカルタ)、マレーシア (クアラルンプール) の各リージョンでパブリックプレビュー中です。 MCQA は、他のリージョンではリリース待ちです。
参照
MaxCompute の使用中に費用配分を把握し、予期しない費用を回避するには、MaxCompute の請求明細を取得して分析できます。 この分析は、リソース使用率を最大化し、費用を削減するのに役立つ貴重な洞察を提供します。 詳細については、「MaxCompute 請求書の利用記録を分析する」をご参照ください。
MaxCompute を使用した開発プロセスでは、費用が発生します。 毎日の費用が通常は安定しているのに、一定期間にわたって 2 倍になり、この増加がビジネスの成長によるものではない場合は、費用分析を実行して、どのプロジェクトまたはジョブが費用の急増を引き起こしているかを特定できます。 これにより、ジョブをタイムリーに最適化および調整して、費用対効果を向上させることができます。 詳細については、「MaxCompute の後払い料金の予期しない急増のトラブルシューティング」をご参照ください。