Um grupo de cotas (quota) é um pool de recursos de computação no MaxCompute que fornece CPU e memória para seus jobs de computação. O MaxCompute permite atribuir jobs a uma cota adequada com base nos requisitos de recursos, promovendo o uso eficiente dos recursos.
Contexto
Utilize as cotas do MaxCompute das seguintes formas:
Associe um projeto a uma cota de computação padrão. Os jobs enviados no projeto são executados nessa cota.
Especifique uma cota de computação no nível do job (use quota). Isso permite atribuir jobs de um único projeto a diferentes cotas, incluindo cotas de assinatura e pagamento conforme o uso. Uma cota especificada no nível do job tem precedência sobre a cota padrão do projeto.
Configure regras para uma cota. Essa ação agenda jobs que atendem às condições da regra para essa cota específica.
Definir uma cota padrão para um projeto
Defina uma cota de computação padrão para um projeto. Os jobs iniciados nesse projeto usam automaticamente a cota padrão para computação. Associe um projeto a uma cota padrão durante a criação do projeto. Também altere a cota padrão de um projeto existente no console. Para obter mais informações, consulte Gerenciar projetos.
Especificar uma cota no nível do job
Especifique uma cota no nível do job adicionando um comando antes da consulta do job. Esse recurso verifica se o proprietário do job tem permissão para usar a cota especificada.
-
Criar uma cota
Para obter mais informações sobre como criar uma cota no novo console, consulte Configurar cotas.
NotaRecomendamos o uso de uma combinação de letras e números para o nome da cota. Nomes de cotas existentes em chinês ainda podem ser utilizados.
-
Conceder permissões
Por padrão, nenhuma conta (incluindo contas Alibaba Cloud) ou função possui permissão para especificar uma cota no nível do job. Conceda essa permissão explicitamente.
-
Criar uma função
Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.
No painel de navegação à esquerda, escolha .
Na página Tenants, clique na aba Roles.
-
Na aba Roles, clique em Add Role. Na caixa de diálogo Add Role, insira um Role Name personalizado, forneça o Policy Content e clique em OK.
{ "Statement": [{ "Action": [ "odps:List", "odps:Usage"], "Effect": "Allow", "Resource": ["acs:odps:*:regions/*/quotas/*"]}], "Version": "1" }
-
Atribuir a função à conta que precisa especificar uma cota no nível do job
Sua conta Alibaba Cloud ou um usuário RAM com a permissão Super_Administrator pode conceder essas permissões.
O processo de autorização varia dependendo do tipo de conta.
Autorizar contas Alibaba Cloud
Execute os seguintes comandos para autorizar uma conta 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>;Autorizar usuários RAM
Siga estas etapas para autorizar um usuário RAM:
Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.
No painel de navegação à esquerda, escolha .
Na página Tenants, clique na aba Users.
Na aba Users, localize o usuário RAM desejado e clique em Modify Role na coluna Actions.
Na caixa de diálogo Edit Role, mova as funções desejadas da seção Available Roles para a seção Added Roles e clique em OK.
-
-
Especificar a cota para um job
Adicione o seguinte comando antes da consulta do job para especificar a cota:
SET odps.task.wlm.quota = <quota_nick_name>;O parâmetro quota_nick_name especifica o apelido da cota. Essa configuração aplica-se apenas a cotas para processamento em lote.
Para um job Spark, adicione a configuração
spark.hadoop.odps.task.wlm.quotae defina seu valor como<quota_nick_name>.-
Para um job de MaxCompute Query Acceleration (MCQA), observe o seguinte:
Não é possível especificar diretamente uma cota interativa usando o comando anterior. O sistema seleciona automaticamente uma cota interativa apenas quando você ativa o modo de aceleração de consulta. Para obter mais informações, consulte MaxCompute Query Acceleration (MCQA).
A cota especificada pelo comando
set odps.task.wlm.quota=<quota_nick_name>;é uma cota de fallback. Isso significa que, se uma tarefa falhar ao executar na cota interativa, ela retornará à cotaquota_nick_namepara execução, em vez de a cota de aceleração selecionarquota_nick_name. Portanto, os recursos consumidos por jobs acelerados com sucesso ainda são cobrados na cota de computação padrão vinculada ao projeto onde o job é executado.Se você não especificar explicitamente o parâmetro
odps.task.wlm.quota, um job interativo tentará primeiro retornar à cota especificada por uma regra de cota. Se nenhuma regra de cota estiver configurada, o job retornará à cota padrão do projeto.
Regras de cota
O MaxCompute permite configurar regras para uma cota. Jobs que atendem às condições da regra podem ser agendados para execução na cota correspondente.
Limitações
Configure regras para cotas de nível 2 de assinatura e pagamento conforme o uso (Standard e Idle).
Configure no máximo 10 regras para cada cota de nível 2.
Para cada regra, insira até 50 objetos nos parâmetros Project e Job Owner. Isso significa que uma regra pode ser aplicada a no máximo 50 projetos e 50 proprietários de jobs (UIDs).
Em cada regra, insira no máximo cinco pares chave-valor para Job Settings.
Para cada regra, o intervalo de valores para prioridade do job é
[0, 9].
Configurar regras de cota
Todas as regras de cota configuradas estão ativas. Exclua as regras desnecessárias. Múltiplas regras possuem uma relação lógica OR. Se um job corresponder a qualquer regra de uma cota, ele será agendado para essa cota ou proibido de usá-la, dependendo do modo da regra. Configure regras de cota de processamento em lote (regras offline) ou regras de cota interativa (regras interativas) conforme necessário.
Utilize-as com moderação para evitar a criação de regras excessivas, o que pode complicar a manutenção futura.
Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.
No painel de navegação à esquerda, escolha .
Na página Quotas, clique no ícone
à esquerda de uma cota de nível 1 para expandi-la e visualizar a lista de cotas de nível 2.Na coluna Actions da cota de nível 2 desejada, clique em Rule Configuration.
-
Na caixa de diálogo Quota Rule Configuration, clique em Add Rule ou clique em Clone na coluna Actions de uma regra existente para criar uma nova regra. Configure os parâmetros conforme descrito abaixo.
Dentro de uma única regra, as condições para múltiplos projetos, tipos de job e Job Settings têm uma relação lógica AND.
Uma regra entra em vigor aproximadamente 5 minutos após a adição.
Casos de uso
Agendamento de jobs MCQA
Agendar jobs de MaxCompute Query Acceleration
-
Cota de aceleração e cota de fallback.
Um job MCQA requer duas cotas:
Uma cota de aceleração (do tipo interativo)
Uma cota de fallback (do tipo processamento em lote).
Para implementar isso, configure uma regra de cota que associe um projeto ou proprietário de job tanto a uma cota de aceleração quanto a uma cota de fallback.
-
Ative o MCQA por projeto, proprietário do job ou outros critérios.
Ao criar uma cota do tipo interactive, configure diferentes condições de regra
ProjectListpara diferentes cotas. Isso permite ativar a cota interactive por projeto.
Isolamento de jobs de backfill de dados
Isolar jobs de backfill de dados
Um job de backfill de dados, que reexecuta jobs para repovoar dados históricos, pode consumir uma grande quantidade de recursos de computação, especialmente em um longo período. Para evitar afetar a operação normal dos jobs diários, recomendamos criar uma cota dedicada com regras específicas para jobs de backfill de dados.
Por exemplo, uma tarefa agendada do DataWorks passa consistentemente o parâmetro SKYNET_DAGTYPE:3 para as Job Settings ao iniciar um job de backfill de dados. Utilize esse comportamento para configurar a seguinte regra de cota:
Crie uma cota chamada
refille configure uma regra para a cotarefill. Se desejar que todos os jobs de backfill de dados iniciados pelo DataWorks sejam executados na cotarefillpor padrão, configure uma regra de modo normal. Para fazer isso, insiraSKYNET_DAGTYPE=3nas Job Settings.-
Também é possível realizar configurações mais granulares. Por exemplo, talvez você queira que apenas jobs de backfill de dados do projeto
P1com prioridade do job entre5 e 9sejam executados na cotarefill. Para isso, configure uma regra de modo normal, selecioneP1para o projeto, insira[5,9]para a prioridade e insiraSKYNET_DAGTYPE=3para Job Settings.NotaA prioridade aqui é a prioridade do job MaxCompute, não a prioridade da linha de base do DataWorks. A fórmula de conversão é:
Prioridade MaxCompute = 9 - Prioridade da Linha de Base do DataWorks.
Isolamento de jobs por função
Isolar jobs de diferentes funções
Crie múltiplas cotas para isolar jobs de diferentes funções.
Geralmente, distinga as funções dos jobs usando uma combinação das seguintes dimensões: Project, Job Owner, Job Type, Priority e Job Settings.
-
Quando jobs de diferentes funções usam projetos diferentes:
Adicione o nome do projeto ao campo Project na regra da cota desejada.
-
Quando jobs de diferentes funções são enviados por usuários diferentes:
Adicione o UID do proprietário do job ao campo Job Owner na regra da cota desejada.
-
Quando jobs de diferentes funções possuem configurações diferentes:
Utilize as Job Settings para distinguir funções. As Job Settings referem-se às instruções
set xxx=xxx;enviadas junto com o job. Elas podem ser personalizadas ou adicionadas pelo sistema. Por exemplo, jobs do DataWorks incluem automaticamente parâmetros de identificação. -
Quando diferentes funções enviam tipos de job diferentes:
Utilize o Job Type para distingui-los. Por exemplo, um job de machine learning enviado da plataforma PAI tem o Job Type
ALGO. Uma consulta SQL padrão enviada através do MaxCompute tem o Job TypeSQL.
Combine também essas condições de regra para obter um controle mais refinado sobre o agendamento de jobs.