MaxCompute charges fees when you store data and run computing jobs in MaxCompute and download data from MaxCompute by using the Internet. MaxCompute supports pay-as-you-go and subscription billing methods. This topic describes the billing items and methods of MaxCompute to help you select a billing method that suits your business scenario. This topic also describes how to estimate costs for running SQL jobs in MaxCompute.
Billing items and methods
- Storage fees: the fees that are charged by using a tiered pricing structure based on the size of data you store in MaxCompute. For more information about storage fees, see Storage pricing (pay-as-you-go).
- Computing fees: the fees that are charged for the use of computing resources. MaxCompute
supports pay-as-you-go and subscription billing methods. The resource usage and payment
of the two billing methods are independent of each other. Before you use a computing
resource, you must associate the computing resource with a project. For more information
about computing fees, see Computing pricing.
- Subscription: a billing method for SQL, MapReduce, Spark, and Mars jobs. You must
pay for computing resources before you can use the resources.
Note For example, if you run 99 TPC Benchmark DS (TPC-DS) SQL jobs on 1 TB data with 160 CUs in MaxCompute, each job takes about 5 minutes on average. You can refer to this example to estimate the amount of CUs that you want to purchase.
- Pay-as-you-go: a billing method for SQL, MapReduce, Spark, and Mars jobs.
- Subscription: a billing method for SQL, MapReduce, Spark, and Mars jobs. You must pay for computing resources before you can use the resources.
- Download fees: the fees that are charged based on the size of data that you download
from MaxCompute by using the Internet. For more information about download fees, see
Note You are not charged for importing data to MaxCompute.
Payment: Expenses are calculated by day for each project.
Billing details: For more information, see View billing details.
Billing method selection
- Development project: a project used to develop and debug jobs. In a development project, random jobs are run with a small amount of data. We recommend that you select the subscription billing method for the development project. The subscription billing method allows you to control costs by specifying a limit for resource consumption.
- Production project: a project to which you publish jobs that you have developed and debugged. If the jobs you publish consume a stable amount of resources, we recommend that you select the pay-as-you-go billing method. This billing method helps you avoid costs that are charged for unused resources in a subscription plan.
MaxCompute supports SQL, user-defined function (UDF), MapReduce, Graph, Spark, Machine Learning Platform for AI, and Mars jobs. MaxCompute charges you only for SQL jobs without UDFs, MapReduce jobs, Spark jobs, and Mars jobs.
When you estimate storage fees, note that MaxCompute stores files by using compression technology. Files are typically compressed to one fifth of their original size. MaxCompute charges storage fees based on the sizes of compressed files. The estimation of storage fees is only for reference. Refer to your bill for the accurate storage fees.
Cost estimation of an SQL job
- If you select the pay-as-you-go billing method, pay attention to cost control. We recommend that you run the COST SQL statement to estimate the cost of an SQL job before you publish the SQL job to the production environment. For more information about the cost estimation of an SQL job, see Cost SQL.
- If you use the MaxCompute Studio plug-in for IntelliJ IDEA to develop and run an SQL job, IntelliJ IDEA automatically estimates the cost of the SQL job before the SQL job is run. For more information, see Develop an SQL script.
Further information about the subscription billing method for computing jobs
- Generally, each process consumes resources of 1 CU. If you purchase 10 CUs and submit a job that requires 100 concurrent processes, the job is performed in 10 rounds, with 10 concurrent processes executed in each round. Each process consumes resources of 1 CU.
- MaxCompute allows you to adjust the memory to be consumed by each process. For more
information, see Cost SQL.
Note If your SQL statement contains a UDF, each process consumes resources of 2 CUs.
For more information about the subscription billing method in MaxCompute, see Computing pricing.