A task is the basic computing unit of MaxCompute. Computing jobs such as those involving SQL and MapReduce are completed by using tasks.

MaxCompute parses most of the tasks that you submit, especially computing tasks such as SQL DML statements and MapReduce tasks. Then, MaxCompute generates task execution plans based on the parsing results. An execution plan consists of several mutually dependent stages.

The execution plan can be logically defined as a directed graph. In this graph, vertices represent stages, and edges represent dependencies between the stages. MaxCompute executes the stages based on the dependencies in the graph (execution plan). A single stage comprises multiple threads, also known as workers. The workers in each stage work together to complete computing for the stage. Different workers in the same stage process different data but run on the same execution logic. A computing task is instantiated as an instance when it is executed. You can perform operations on the instance. For example, you can run the status command to query the instance status and the kill command to terminate the instance.

Some MaxCompute tasks, such as SQL DDL statements, are not computing tasks. These tasks only need to read and modify metadata in MaxCompute. MaxCompute does not generate execution plans for these tasks.
Note MaxCompute does not convert all the requests to tasks. For example, operations on projects, resources, user-defined functions (UDFs), and instances are not processed as tasks.