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.
-
Crear una cuota
Para obtener más información sobre cómo crear una cuota en la nueva consola, consulte Configure quotas.
NotaSe 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.
-
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.
-
Crear un rol
Inicie sesión en la MaxCompute console y seleccione una región en la esquina superior izquierda.
En el panel de navegación izquierdo, elija .
En la página Tenants, haga clic en la pestaña Roles.
-
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" }
-
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:
Inicie sesión en la MaxCompute console y seleccione una región en la esquina superior izquierda.
En el panel de navegación izquierdo, elija .
En la página Tenants, haga clic en la pestaña Users.
En la pestaña Users, busque el usuario RAM objetivo y haga clic en Modify Role en la columna Actions.
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.
-
-
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.quotay 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 cuotaquota_nick_namepara su ejecución, en lugar de que la cuota de aceleración seleccionequota_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.
Utilícelas con moderación para evitar crear demasiadas reglas, lo cual puede complicar el mantenimiento futuro.
Inicie sesión en la MaxCompute console y seleccione una región en la esquina superior izquierda.
En el panel de navegación izquierdo, elija .
En la página Quotas, haga clic en el icono
a la izquierda de una cuota de nivel 1 para expandirla y ver la lista de cuotas de nivel 2.En la columna Actions de la cuota de nivel 2 objetivo, haga clic en Rule Configuration.
-
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.
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
ProjectListpara 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
refilly configure una regla para la cuotarefill. Si desea que todos los trabajos de relleno de datos iniciados por DataWorks se ejecuten en la cuotarefillde forma predeterminada, configure una regla de modo normal. Para hacer esto, introduzcaSKYNET_DAGTYPE=3en 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
P1con una job priority entre5 y 9se ejecuten en la cuotarefill. Para ello, configure una regla de modo normal, seleccioneP1para el proyecto, introduzca[5,9]para la prioridad e introduzcaSKYNET_DAGTYPE=3para Job Settings.NotaLa 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 TypeSQL.
También puede combinar estas condiciones de regla para lograr un control más detallado sobre la programación de trabajos.