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) に対しては課金されません。 Mars ジョブについては、2020 年 9 月 1 日より課金が開始されました。 MCQA ジョブについては、2020 年 10 月 1 日より課金が開始されました。 他のタイプのコンピューティングジョブに対しては課金されません。
サブスクリプション
特定のリソースを一定期間使用できます。 MaxCompute では、サブスクライブしたリソースが予約されます。 コンピューティングリソースは、計算ユニット (CU) で測定されます。 1 CU は、4 GB メモリと 1 CPU コアに相当します。 サブスクリプション課方式金は、SQL、MapReduce、Spark などのジョブによって消費されるコンピューティングリソースに使用されます。
リソース | メモリ容量 | CPU コア | 料金 (USD / 月) |
1 CU | 4 GB | 1 | 22.0 |
サブスクリプションコンピューティングリソースの購入後、リソース監視を使用してリソースを監視および管理できます。 詳細については、「リソース監視の使用」をご参照ください。
MaxCompute を初めて使用する際は、課金方法として従量課金を選択することを推奨します。 サブスクリプション課金を選択した場合、一定量のコンピューティングリソースを購入することになります。 新規ユーザーの場合、リソースの消費が購入したリソースよりも少なくなる場合があります。 一部のリソースは未使用のままに可能性があります。 このような場合は、従量課金を使用することを推奨します。 従量課金は、消費するリソースの量に基づいて課金されるため、費用対効果が高くなります。
標準 SQL ジョブに対する課金
MaxCompute では、SQL ジョブが実行されるたびに、コンピューティングの入力データ量とSQL の複雑さに基づいて料金が計算されます。 翌日に、実行されたすべての SQL ジョブの料金がお客様の Alibaba Cloud アカウント内の 1 つの請求書に集計されます。 料金は、お客様の Alibaba Cloud アカウントの残高から自動的に引き落とされます。
MaxCompute では、以下の式に基づいて標準 SQL ジョブに対する料金が計算されます。
Fee for a standard SQL job = Amount of input data in computing × SQL complexity × Unit price of a standard SQL job
下表に、標準 SQL ジョブの単価を示します。
項目 | 単価 |
標準 SQL ジョブ | 1 GB あたり USD 0.0438 |
コンピューティングでの入力データ量: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 Sentence>;
以下のコマンドは、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
この例では、キーワード数は、DISTINCT 句 1 + GROUP BY 句 1 + ORDER BY 句 1 + 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 ジョブに対しては、以下の式を使用して課金されます。
Fee for an SQL job = Amount of input data in computing × Unit price of SQL jobs that reference external tables
下表に、外部テーブルを参照する SQL ジョブの単価を示します。
項目 | 単価 |
標準 SQL ジョブ | 1 GB あたり USD 0.0044 |
SQL の複雑さは 1 です。 翌日に、実行されたすべての SQL ジョブの料金がお客様の Alibaba Cloud アカウント内の 1 つの請求書に集計されます。
翌日の 06:00 までに請求書が作成されます。
内部テーブルと外部テーブルを参照するジョブの場合、MaxCompute では、内部テーブルを参照するジョブと外部テーブルを参照するジョブの料金が個別に計算されます。
外部テーブルを参照する SQL ジョブの料金を見積もることはできません。
MapReduce ジョブに対する従量課金
2017 年 12 月 19 日より、MaxCompute MapReduce ジョブは従量課金方式で課金されます。
MapReduce ジョブに対しては、以下の式を使用して課金されます。
Fee for MapReduce jobs of the day = Number of billable hours × Unit price of a MapReduce job (USD per hour)
下表に、MaxCompute MapReduce ジョブの単価を示します。
項目 | 単価 |
MapReduce ジョブ | 1 ジョブ、1 時間あたり USD 0.0690 |
MapReduce ジョブの課金対象時間数は、以下の式に基づいて計算されます。
Number of billable hours of a MapReduce job = Number of hours for which a job runs × Number of CPU cores consumed by the job
たとえば、0.5 時間実行された MapReduce ジョブで 100 CPU コアが消費された場合、課金対象時間数は、100 コア × 0.5 時間 = 50
となります。
MapReduce ジョブの実行後、MaxCompute によりジョブの課金対象時間が計算されます。 翌日に、実行されたすべての MapReduce ジョブの料金がお客様の Alibaba Cloud アカウント内の 1 つの請求書に集計されます。 料金は、お客様の Alibaba Cloud アカウントの残高から自動的に引き落とされます。
翌日の 06:00 までに請求書が作成されます。
失敗した MapReduce ジョブについては課金されません。
ジョブのキューイング時間は、課金対象時間にはカウントされません。
MaxCompute に対してサブスクリプション課金を選択した場合、サブスクリプション期間内は MapReduce ジョブを無料で実行できます。
Spark ジョブに対する従量課金
2019 年 2 月 1 日より、Spark ジョブは従量課金方式で課金されます。 詳細については、「Spark on MaxCompute の概要」をご参照ください。 Spark ジョブに対して、以下の計算式に基づいて課金されます。
Fee for Spark jobs of the day = Number of billable hours × Unit price (USD 0.1041 per hour per job)
Spark ジョブの課金対象時間数は、以下の式に基づいて計算されます。
Number of billable hours of a Spark job = MAX[Number of CPU cores × Number of hours for which a job runs, ROUND UP(Memory size × Number of hours for which a job runs/4)]
以下の事項にご注意ください。
消費された CPU コア数、ジョブの実行時間、およびメモリサイズを指定する必要があります。
課金対象時間 1 時間は、1 CPU コア、4 GB メモリに相当します。
たとえば、1 時間実行された Spark ジョブで 2 CPU コアと 5 GB のメモリが消費された場合、課金対象時間数は MAX[2 × 1, ROUND UP(5 × 1/4)] = 2
となります。 1 時間実行された Spark ジョブが 2 CPU コアと 10 GB のメモリが消費された場合、課金対象時間は MAX[2 × 1, ROUND UP(10 × 1/4)] = 3
となります。
Spark ジョブの実行後、MaxCompute によりジョブの課金対象時間が計算されます。 翌日に、実行されたすべての Spark ジョブの料金がお客様の Alibaba Cloud アカウント内の 1 つの請求書に集計されます。 料金は、お客様の Alibaba Cloud アカウントの残高から自動的に引き落とされます。
翌日の 06:00 までに請求書が作成されます。
ジョブのキューイング時間は、課金対象時間にはカウントされません。
同様のジョブの料金は、指定されたリソースの量によって変わる場合があります。
MaxCompute に対してサブスクリプション課金を選択した場合、サブスクリプション期間内は Spark ジョブを無料で実行できます。
Mars ジョブに対する従量課金
2020 年 9 月 1 日より、MaxCompute Mars ジョブは従量課金方式で課金されます。 詳細については、「概要」をご参照ください。 Mars ジョブに対して、以下の計算式に基づいて課金されます。
Fee for Mars jobs of the day = Number of billable hours × Unit price (USD 0.1041 per hour per job)
Mars ジョブの課金対象時間数は、以下の式に基づいて計算されます。
ジョブで消費される CPU コア数とメモリサイズを計算します。
課金対象時間 1 時間は、1 CPU コア、4 GB メモリに相当します。
Mars ジョブの課金対象時間数は、以下の式に基づいて計算されます。
MAX [CPU コア数 × ジョブ実行時間数、ROUND UP (メモリサイズ × ジョブ実行時間数 / 4)]
。たとえば、1 時間実行された Mars ジョブが 2 CPU コアと 5 GB のメモリを消費する場合、課金対象時間は
MAX[2 × 1, ROUND UP(5 × 1/4)] = 2
となります。 1 時間実行された Mars ジョブが 2 CPU コアと 10 GB のメモリを消費する場合、課金対象時間はMAX[2 × 1、ROUND UP(10 × 1/4)] = 3
となります。
Mars ジョブの実行後、MaxCompute によりジョブの課金対象時間が計算されます。 翌日に、実行されたすべての Mars ジョブの料金がお客様の Alibaba Cloud アカウント内の 1 つの請求書に集計されます。 料金は、お客様の Alibaba Cloud アカウントの残高から自動的に引き落とされます。
翌日の 06:00 までに請求書が作成されます。
ジョブのキューイング時間は、課金対象時間にはカウントされません。
同様のジョブの料金は、指定されたリソースの量によって変わる場合があります。
MaxCompute に対してサブスクリプション課金を選択した場合、サブスクリプション期間内は Mars ジョブを無料で実行できます。
MCQA ジョブに対する従量課金
2020 年 10 月 1 日より、MCQA ジョブは従量課金方式で課金されます。 詳細については、「概要」をご参照ください。
MaxCompute では、MCQA ジョブが実行されるたびに、ジョブの入力データ量に基づいて料金が計算されます。 翌日、実行されたすべての MCQA ジョブの料金が MaxCompute によって集計されます。
MCQA ジョブに対して、以下の計算式に基づいて課金されます。
Fee for an MCQA job = Amount of input data for the MCQA job × Unit price (USD 0.0438 per GB)
MCQA ジョブは、専用のコンピューティングリソースを使用します。 MaxCompute に対してサブスクリプション課金を選択した場合、MCQA ジョブの実行時に MCQA ジョブによってスキャンされたデータ量に基づいて料金が計算されます。
MaxCompute では、各 MCQA ジョブによってスキャンされたデータ量に基づいて料金が計算されます。 各 MCQA ジョブは、10 MB 以上のデータをスキャンします。 キャンセルされた MCQA ジョブに対しても、スキャンされたデータ量に基づいて課金されます。
翌日の 06:00 までに請求書が作成されます。
クエリが実行されない場合、料金は発生しません。
デフォルトでは、MaxCompute ではデータに対して列指向のストレージと圧縮が実行されます。 MaxCompute では、圧縮データに基づいてスキャンデータの量が計算されます。
パーティションテーブルをクエリする際、パーティションフィルター条件を使用してスキャンデータの量を減らし、クエリのパフォーマンスを向上させることができます。
MCQA は、中国 (香港)、シンガポール、インドネシア (ジャカルタ)、マレーシア (クアラルンプール) の各リージョンでパブリックプレビュー中です。 今後、他のリージョンでもリリース予定です。