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 billable 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.
Billable 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, see Computing pricing.
- Subscription: a billing method for SQL, MapReduce, Spark, and Mars jobs. You can use the resources only after you pay for computing resources.
- Pay-as-you-go: a billing method for SQL, MapReduce, Spark, and Mars jobs.
- 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, see Download pricing (pay-as-you-go).
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 that is 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 reduce 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 for reference only. Check your bill for 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, see Other operations.
- 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 and submit an SQL script.
Further information about the subscription billing method for computing jobs
- Typically, 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 Other operations.
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.