Todos los productos
Search
Centro de documentos

MaxCompute:Uso de cuotas para recursos de cómputo

Última actualización: Sep 05, 2026

Un grupo de cuotas (quota) es un pool de recursos de cómputo en MaxCompute que proporciona la CPU y la memoria para sus trabajos de cómputo. MaxCompute le permite asignar trabajos a una cuota adecuada según sus requisitos de recursos, lo que promueve un uso eficiente de los mismos.

Contexto

Puede utilizar las cuotas de MaxCompute de las siguientes maneras:

  • Asociar un proyecto con una cuota de cómputo predeterminada. Los trabajos enviados en el proyecto se ejecutan en esta cuota.

  • Especificar una cuota de cómputo a nivel de trabajo (use quota). Esto le permite asignar trabajos de un solo proyecto a diferentes cuotas, incluidas cuotas de suscripción y pay-as-you-go. Una cuota especificada a nivel de trabajo tiene prioridad sobre la cuota predeterminada del proyecto.

  • Configurar reglas para una cuota. Esto programa en dicha cuota los trabajos que cumplen las condiciones de la regla.

Establecer una cuota predeterminada para un proyecto

Puede establecer una cuota de cómputo predeterminada para un proyecto. Los trabajos iniciados en este proyecto utilizan automáticamente la cuota predeterminada para el cómputo. Puede asociar un proyecto con una cuota predeterminada al crear el proyecto. También puede cambiar la cuota predeterminada de un proyecto existente en la consola. Para obtener más información, consulte Manage projects.

Especificar una cuota a nivel de trabajo

Puede especificar una cuota a nivel de trabajo agregando un comando antes de la consulta del trabajo. Esta función comprueba si el propietario del trabajo tiene el permiso para usar la cuota especificada.

  1. Crear una cuota

    Para obtener más información sobre cómo crear una cuota en la nueva consola, consulte Configure quotas.

    Nota

    Se recomienda utilizar una combinación de letras y números para el nombre de la cuota. Los nombres de cuotas existentes en chino se pueden seguir utilizando.

  2. Otorgar permisos

    De forma predeterminada, ninguna cuenta (incluidas las cuentas de Alibaba Cloud) ni rol tienen permiso para especificar una cuota a nivel de trabajo. Debe otorgar este permiso explícitamente.

    1. Crear un rol

      1. Inicie sesión en la MaxCompute console y seleccione una región en la esquina superior izquierda.

      2. En el panel de navegación izquierdo, elija Manage Configurations > Tenants .

      3. En la página Tenants, haga clic en la pestaña Roles.

      4. En la pestaña Roles, haga clic en Add Role. En el cuadro de diálogo Add Role, introduzca un Role Name personalizado, proporcione el Policy Content y luego haga clic en OK.

        {
            "Statement": [{
                    "Action": [
                        "odps:List",
                        "odps:Usage"],
                    "Effect": "Allow",
                    "Resource": ["acs:odps:*:regions/*/quotas/*"]}],
            "Version": "1"
        }
    2. Asignar el rol a la cuenta que necesita especificar una cuota a nivel de trabajo

      Su cuenta de Alibaba Cloud o un usuario RAM con el permiso Super_Administrator pueden otorgar estos permisos.

      El proceso de autorización varía según el tipo de cuenta.

      Autorización de cuentas de Alibaba Cloud

      Ejecute los siguientes comandos para autorizar una cuenta de Alibaba Cloud:

      -- Add the Alibaba Cloud account to the tenant and grant a tenant role to the account.
      ADD TENANT USER <Aliyun$xxxx>;
      GRANT TENANT ROLE <role_name> TO USER <Aliyun$xxxx>;
      
      -- View the permissions of a tenant role or user.
      SHOW GRANTS FOR TENANT ROLE <role_name>;
      SHOW GRANTS FOR TENANT USER <user_name>;
      SHOW PRINCIPALS FOR TENANT [ROLE] <role_name>;

      Autorización de usuarios RAM

      Siga estos pasos para autorizar a un usuario RAM:

      1. Inicie sesión en la MaxCompute console y seleccione una región en la esquina superior izquierda.

      2. En el panel de navegación izquierdo, elija Manage Configurations > Tenants .

      3. En la página Tenants, haga clic en la pestaña Users.

      4. En la pestaña Users, busque el usuario RAM objetivo y haga clic en Modify Role en la columna Actions.

      5. En el cuadro de diálogo Edit Role, mueva los roles deseados de la sección Available Roles a la sección Added Roles y luego haga clic en OK.

  3. Especificar la cuota para un trabajo

    Agregue el siguiente comando antes de la consulta del trabajo para especificar la cuota:

    SET odps.task.wlm.quota = <quota_nick_name>; 

    El parámetro quota_nick_name especifica el apodo de la cuota. Esta configuración solo se aplica a las cuotas de procesamiento por lotes.

    • Para un trabajo de Spark, debe agregar la configuración spark.hadoop.odps.task.wlm.quota y establecer su valor en <quota_nick_name>.

    • Para un trabajo de MaxCompute Query Acceleration (MCQA), tenga en cuenta lo siguiente:

      • No puede especificar directamente una cuota interactiva mediante el comando anterior. El sistema selecciona automáticamente una cuota interactiva solo cuando habilita el modo de aceleración de consultas. Para obtener más información, consulte MaxCompute Query Acceleration (MCQA).

      • La cuota especificada por el comando set odps.task.wlm.quota=<quota_nick_name>; es una cuota de respaldo. Esto significa que, si un trabajo no se puede ejecutar en la cuota interactiva, recurre a la cuota quota_nick_name para su ejecución, en lugar de que la cuota de aceleración seleccione quota_nick_name. Por lo tanto, los recursos consumidos por los trabajos acelerados correctamente todavía se cargan a la cuota de cómputo predeterminada vinculada al proyecto donde se ejecuta el trabajo.

      • Si no especifica explícitamente el parámetro odps.task.wlm.quota, un trabajo interactivo primero intenta recurrir a la cuota especificada por una regla de cuota. Si no hay ninguna regla de cuota configurada, el trabajo recurre a la cuota predeterminada del proyecto.

Reglas de cuota

MaxCompute le permite configurar reglas para una cuota. Los trabajos que cumplen las condiciones de la regla se pueden programar para ejecutarse en la cuota correspondiente.

Limitaciones

  • Puede configurar reglas para cuotas de nivel 2 tanto de suscripción como pay-as-you-go (Standard e Idle).

  • Puede configurar un máximo de 10 reglas para cada cuota de nivel 2.

  • Para cada regla, puede introducir hasta 50 objetos en los parámetros Project y Job Owner. Esto significa que una regla puede aplicarse a un máximo de 50 proyectos y 50 propietarios de trabajos (UID).

  • Para cada regla, puede introducir un máximo de cinco pares clave-valor en Job Settings.

  • Para cada regla, el rango de valores para la prioridad del trabajo es [0, 9].

Configurar reglas de cuota

Todas las reglas de cuota configuradas están activas. Puede eliminar las reglas que no necesite. Varias reglas tienen una relación lógica OR. Si un trabajo coincide con alguna regla de una cuota, se programa en esa cuota o se le prohíbe usarla, dependiendo del modo de la regla. Puede configurar reglas de cuota de procesamiento por lotes (reglas sin conexión) o reglas de cuota interactivas (reglas interactivas) según sea necesario.

Nota

Utilícelas con moderación para evitar crear demasiadas reglas, lo cual puede complicar el mantenimiento futuro.

  1. Inicie sesión en la MaxCompute console y seleccione una región en la esquina superior izquierda.

  2. En el panel de navegación izquierdo, elija Manage Configurations > Quotas .

  3. En la página Quotas, haga clic en el icono image a la izquierda de una cuota de nivel 1 para expandirla y ver la lista de cuotas de nivel 2.

  4. En la columna Actions de la cuota de nivel 2 objetivo, haga clic en Rule Configuration.

  5. En el cuadro de diálogo Quota Rule Configuration, haga clic en Add Rule, o haga clic en Clone en la columna Actions de una regla existente para crear una nueva regla. Configure los parámetros como se describe a continuación.

    • Dentro de una sola regla, las condiciones para varios proyectos, tipos de trabajo y Job Settings tienen una relación lógica AND.

    • Una regla entra en vigor aproximadamente 5 minutos después de agregarla.

    Haga clic para expandir los detalles de los parámetros

    Parámetro

    Descripción de la regla de cuota de procesamiento por lotes

    Rule Name

    • El nombre personalizado de la regla de cuota.

    • El nombre debe comenzar con una letra y solo puede contener letras, dígitos y guiones bajos (_).

    Rule Mode

    El modo en el que se ejecuta la regla de cuota. Valores válidos:

    • NORMAL: modo normal.

      Si las características de un trabajo coinciden con una regla de cuota, el trabajo se programa para ejecutarse en esa cuota.

      • Cuando un trabajo coincide con una regla de cuota, se programa para ejecutarse en esa cuota.

      • Cuando un trabajo coincide con varias reglas de cuota simultáneamente, se programa para ejecutarse en la cuota que se creó primero.

      • Cuando un trabajo no coincide con ninguna regla de cuota, utiliza la cuota predeterminada del proyecto, incluso si el trabajo no coincide con las reglas de la cuota predeterminada.

      • Cuando se especifica una cuota, como etl_1, a nivel de trabajo, el trabajo se programará en la cuota etl_1, incluso si el trabajo no coincide con las reglas de la cuota etl_1.

    • EXCLUSIVE: modo exclusivo.

      Un trabajo se programa en esta cuota solo si sus características coinciden con esta regla. De lo contrario, se prohíbe al trabajo usar esta cuota.

      Los siguientes ejemplos ilustran la diferencia con el modo normal:

      • Por ejemplo, si la cuota predeterminada de un proyecto, etl_2, está asociada con Project_2, y etl_2 tiene una regla de modo exclusivo, un trabajo de ese proyecto debe coincidir con la regla para usar etl_2. Si no coincide, el envío falla. En modo normal, el trabajo podría usar etl_2 y programarse para ejecutarse en etl_2 incluso sin coincidencia.

      • Si especifica una cuota llamada etl_3 mediante el comando set odps.task.wlm.quota=etl_3 (i.e. use quota etl_3), y etl_3 tiene una regla de modo exclusivo con la que el trabajo no coincide, el envío del trabajo fallará. Por el contrario, si etl_3 solo tuviera una regla de modo normal, el trabajo podría programarse para ejecutarse en etl_3.

    • ANTI: modo prohibido.

      Si un trabajo coincide con esta regla, se le prohíbe usar esta cuota. Luego, el trabajo se enruta a la cuota de cómputo predeterminada de su proyecto. Si la cuota predeterminada es esta misma cuota prohibida, el trabajo se programa en su lugar en la cuota disponible más antigua de la región, lo que puede incluir cuotas pay-as-you-go.

    Importante

    Las reglas de modo exclusivo y modo prohibido tienen mayor prioridad que las reglas de modo normal. Si un trabajo no coincide con una regla de modo exclusivo de la Cuota A o coincide con una regla de modo prohibido de la Cuota A, el trabajo no se puede programar en la Cuota A, independientemente de si coincide con una regla de modo normal de la Cuota A o se asigna manualmente a la Cuota A.

    Project

    Seleccione los proyectos a los que se aplica la regla. Puede seleccionar hasta 50 proyectos. Si deja esto vacío, la regla se aplica a todos los proyectos.

    Job Type

    Seleccione los tipos de trabajo a los que se aplica la regla.

    Valores válidos:

    • SQL: trabajos SQL

    • SQLRT: trabajos SQL de MaxCompute Query Acceleration

    • SQLCost: trabajos de estimación de costos SQL

    • LOT: trabajos MapReduce

    • CUPID: trabajos Spark o Mars

    • AlgoTask: trabajos de aprendizaje automático

    • MaxFrame: trabajos del motor de computación distribuida MaxFrame

    • Graph: trabajos de computación de grafos

    Este parámetro está vacío de forma predeterminada, lo que significa que la regla se aplica a todos los tipos de trabajo.

    Job Priority

    • Introduzca la prioridad del trabajo a la que se aplica la regla.

    • Introduzca un rango de prioridad de 0-9. Por ejemplo, [0,3] coincide con trabajos con prioridades 0, 1, 2 y 3.

    • Si deja esto vacío, la regla se aplica a todas las prioridades de trabajo.

    Job Owner (Account ID)

    • Introduzca los UID de los propietarios de trabajos a los que se aplica la regla. Varios UID tienen una relación lógica OR. Introduzca cada UID en una nueva línea. Puede introducir hasta 50 UID.

    • Para un UID de usuario RAM, debe agregar el prefijo p4_, por ejemplo, p4_12344566777.

    • Si deja esto vacío, la regla se aplica a todos los propietarios de trabajos.

    Job Settings

    • Introduzca pares clave-valor de Job Settings en el formato Key=Value. No agregue comillas. Varios parámetros tienen una relación lógica AND. Introduzca cada par en una nueva línea. Puede introducir hasta cinco pares.

    • Por ejemplo, para ejecutar todos los trabajos de relleno de datos iniciados por la programación de DataWorks en la cuota actual, introduzca SKYNET_DAGTYPE=3 en Job Settings. Para obtener más información, consulte Isolate data backfill jobs.

    • Si deja esto vacío, la regla se aplica a todas las configuraciones.

    Descripción de la regla de cuota interactiva

    Parámetro

    Descripción de la regla de cuota interactiva

    Rule Name

    • El nombre personalizado de la regla de cuota.

    • El nombre debe comenzar con una letra y solo puede contener letras, dígitos y guiones bajos (_).

    Rule Mode

    El modo en el que se ejecuta la regla de cuota. Valores válidos:

    • NORMAL: modo normal.

      Si las características de un trabajo coinciden con una regla de cuota, el trabajo se programa para ejecutarse en esa cuota.

      • Cuando un trabajo coincide con una regla de cuota, se programa para ejecutarse en esa cuota.

      • Cuando un trabajo coincide con varias reglas de cuota simultáneamente, se programa para ejecutarse en la cuota que se creó primero.

      • Cuando un trabajo no coincide con ninguna regla de cuota, utiliza la cuota predeterminada del proyecto, incluso si el trabajo no coincide con las reglas de la cuota predeterminada.

      • Cuando se especifica una cuota, como etl_1, a nivel de trabajo, el trabajo se programará en la cuota etl_1, incluso si el trabajo no coincide con las reglas de la cuota etl_1.

    • EXCLUSIVE: modo exclusivo.

      Un trabajo se programa en esta cuota solo si sus características coinciden con esta regla. De lo contrario, se prohíbe al trabajo usar esta cuota.

      Los siguientes ejemplos ilustran la diferencia con el modo normal:

      • Por ejemplo, si la cuota predeterminada de un proyecto, etl_2, está asociada con Project_2, y etl_2 tiene una regla de modo exclusivo, un trabajo de ese proyecto debe coincidir con la regla para usar etl_2. Si no coincide, el envío falla. En modo normal, el trabajo podría usar etl_2 y programarse para ejecutarse en etl_2 incluso sin coincidencia.

      • Si especifica una cuota llamada etl_3 mediante el comando set odps.task.wlm.quota=etl_3 (i.e. use quota etl_3), y etl_3 tiene una regla de modo exclusivo con la que el trabajo no coincide, el envío del trabajo fallará. Por el contrario, si etl_3 solo tuviera una regla de modo normal, el trabajo podría programarse para ejecutarse en etl_3.

    • ANTI: modo prohibido.

      Si un trabajo coincide con esta regla, se le prohíbe usar esta cuota. Luego, el trabajo se enruta a la cuota de cómputo predeterminada de su proyecto. Si la cuota predeterminada es esta misma cuota prohibida, el trabajo se programa en su lugar en la cuota disponible más antigua de la región, lo que puede incluir cuotas pay-as-you-go.

    Importante

    Las reglas de modo exclusivo y modo prohibido tienen mayor prioridad que las reglas de modo normal. Si un trabajo no coincide con una regla de modo exclusivo de la Cuota A o coincide con una regla de modo prohibido de la Cuota A, el trabajo no se puede programar en la Cuota A, independientemente de si coincide con una regla de modo normal de la Cuota A o se asigna manualmente a la Cuota A.

    Project

    Seleccione los proyectos a los que se aplica la regla. Puede seleccionar hasta 50 proyectos. Si deja esto vacío, la regla se aplica a todos los proyectos.

    Job Type

    Valor fijo: SQL (trabajos SQL).

    Job Priority

    No aplicable.

    Job Owner (Account ID)

    • Introduzca los UID de los propietarios de trabajos a los que se aplica la regla. Varios UID tienen una relación lógica OR. Introduzca cada UID en una nueva línea. Puede introducir hasta 50 UID.

    • Para un UID de usuario RAM, debe agregar el prefijo p4_, por ejemplo, p4_12344566777.

    • Si deja esto vacío, la regla se aplica a todos los propietarios de trabajos.

    Job Settings

    No aplicable.

    Como mínimo, se debe especificar uno de los siguientes parámetros: Project, Job Type, Job Priority, Job Owner (UID) o Job Settings. Cualquier parámetro que se deje vacío coincidirá con todas las opciones.

Casos de uso

Programación de trabajos MCQA

Programar trabajos de MaxCompute Query Acceleration

  • Cuota de aceleración y cuota de respaldo.

    Un trabajo MCQA requiere dos cuotas:

    • Una cuota de aceleración (del tipo interactive)

    • Una cuota de respaldo (del tipo batch processing)

    Para implementar esto, configure una regla de cuota que asocie un proyecto o propietario de trabajo con una cuota de aceleración y una de respaldo.

  • Habilitar MCQA por proyecto, propietario de trabajo u otros criterios.

    Cuando crea una cuota del tipo interactive, puede configurar diferentes condiciones de regla ProjectList para diferentes cuotas. Esto le permite habilitar la cuota interactive por proyecto.

Aislamiento de trabajos de relleno de datos

Aislar trabajos de relleno de datos

Un trabajo de relleno de datos, que vuelve a ejecutar trabajos para repoblar datos históricos, puede consumir una gran cantidad de recursos de cómputo, especialmente durante un largo período de tiempo. Para evitar afectar la operación normal de los trabajos diarios, se recomienda crear una cuota dedicada con reglas específicas para trabajos de relleno de datos.

Por ejemplo, una tarea programada de DataWorks pasa consistentemente el parámetro SKYNET_DAGTYPE:3 a Job Settings al iniciar un trabajo de relleno de datos. Puede usar este comportamiento para configurar la siguiente regla de cuota:

  • Cree una cuota llamada refill y configure una regla para la cuota refill. Si desea que todos los trabajos de relleno de datos iniciados por DataWorks se ejecuten en la cuota refill de forma predeterminada, configure una regla de modo normal. Para hacer esto, introduzca SKYNET_DAGTYPE=3 en Job Settings.

  • También puede realizar configuraciones más detalladas. Por ejemplo, es posible que desee que solo los trabajos de relleno de datos del proyecto P1 con una job priority entre 5 y 9 se ejecuten en la cuota refill. Para ello, configure una regla de modo normal, seleccione P1 para el proyecto, introduzca [5,9] para la prioridad e introduzca SKYNET_DAGTYPE=3 para Job Settings.

    Nota

    La prioridad aquí es la prioridad del trabajo de MaxCompute, no la prioridad de línea base de DataWorks. La fórmula de conversión es: MaxCompute Priority = 9 - DataWorks Baseline Priority.

Aislamiento de trabajos por rol

Aislar trabajos de diferentes roles

Puede crear varias cuotas para aislar trabajos de diferentes roles.

Normalmente, puede distinguir los roles de trabajo utilizando una combinación de las siguientes dimensiones: Project, Job Owner, Job Type, Priority y Job Settings.

  • Cuando los trabajos de diferentes roles usan proyectos distintos:

    Puede agregar el nombre del proyecto al campo Project en la regla de la cuota deseada.

  • Cuando los trabajos de diferentes roles son enviados por distintos usuarios:

    Puede agregar el UID del propietario del trabajo al campo Job Owner en la regla de la cuota deseada.

  • Cuando los trabajos de diferentes roles tienen configuraciones distintas:

    Puede usar Job Settings para distinguir roles. Job Settings se refiere a las declaraciones set xxx=xxx; enviadas junto con el trabajo. Pueden ser definidas por el usuario o agregadas por el sistema. Por ejemplo, los trabajos de DataWorks incluyen automáticamente parámetros de identificación.

  • Cuando diferentes roles envían tipos de trabajo distintos:

    Puede usar Job Type para distinguirlos. Por ejemplo, un trabajo de aprendizaje automático enviado desde la plataforma PAI tiene el Job Type ALGO. Una consulta SQL estándar enviada a través de MaxCompute tiene el Job Type SQL.

También puede combinar estas condiciones de regla para lograr un control más detallado sobre la programación de trabajos.