Todos os produtos
Search
Central de documentação

MaxCompute:Uso de cotas para recursos de computação

Última atualização: Jun 27, 2026

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.

  1. Criar uma cota

    Para obter mais informações sobre como criar uma cota no novo console, consulte Configurar cotas.

    Nota

    Recomendamos 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.

  2. 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.

    1. Criar uma função

      1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

      2. No painel de navegação à esquerda, escolha Manage Configurations > Tenants .

      3. Na página Tenants, clique na aba Roles.

      4. 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"
        }
    2. 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:

      1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

      2. No painel de navegação à esquerda, escolha Manage Configurations > Tenants .

      3. Na página Tenants, clique na aba Users.

      4. Na aba Users, localize o usuário RAM desejado e clique em Modify Role na coluna Actions.

      5. 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.

  3. 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.quota e 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á à cota quota_nick_name para execução, em vez de a cota de aceleração selecionar quota_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.

Nota

Utilize-as com moderação para evitar a criação de regras excessivas, o que pode complicar a manutenção futura.

  1. Faça login no MaxCompute console e selecione uma região no canto superior esquerdo.

  2. No painel de navegação à esquerda, escolha Manage Configurations > Quotas .

  3. Na página Quotas, clique no ícone image à esquerda de uma cota de nível 1 para expandi-la e visualizar a lista de cotas de nível 2.

  4. Na coluna Actions da cota de nível 2 desejada, clique em Rule Configuration.

  5. 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.

    Clique para expandir os detalhes dos parâmetros

    Parâmetro

    Descrição da regra de cota de processamento em lote

    Rule Name

    • Nome personalizado da regra de cota.

    • O nome deve começar com uma letra e conter apenas letras, dígitos e sublinhados (_).

    Rule Mode

    Modo de execução da regra de cota. Valores válidos:

    • NORMAL: modo normal.

      Se as características de um job corresponderem a uma regra de cota, o job será agendado para execução nessa cota.

      • Quando um job corresponde a uma regra de cota, ele é agendado para execução nessa cota.

      • Quando um job corresponde simultaneamente a várias regras de cota, ele é agendado para execução na cota criada há mais tempo.

      • Quando um job não corresponde a nenhuma regra de cota, ele usa a cota padrão do projeto, mesmo que o job não corresponda às regras da cota padrão.

      • Quando uma cota, como etl_1, é especificada no nível do job, o job será agendado para a cota etl_1, mesmo que o job não corresponda às regras da cota etl_1.

    • EXCLUSIVE: modo exclusivo.

      Um job é agendado para esta cota apenas se suas características corresponderem a esta regra. Caso contrário, o job fica proibido de usar esta cota.

      Os exemplos a seguir ilustram a diferença em relação ao modo normal:

      • Por exemplo, se a cota padrão de um projeto, etl_2, estiver associada ao Project_2, e etl_2 tiver uma regra de modo exclusivo, um job desse projeto deverá corresponder à regra para usar etl_2. Se não houver correspondência, o envio falhará. No modo normal, o job poderia usar etl_2 e ser agendado para execução em etl_2 mesmo sem correspondência.

      • Se você especificar uma cota chamada etl_3 usando o comando set odps.task.wlm.quota=etl_3 (i.e. use quota etl_3), e etl_3 tiver uma regra de modo exclusivo que o job não atenda, o envio do job falhará. Em contraste, se etl_3 tivesse apenas uma regra de modo normal, o job poderia ser agendado para execução em etl_3.

    • ANTI: modo proibido.

      Se um job corresponder a esta regra, ele ficará proibido de usar esta cota. O job será então direcionado para a cota de computação padrão do seu projeto. Se a cota padrão for esta mesma cota proibida, o job será agendado para a cota disponível mais antiga na região, o que pode incluir cotas de pagamento conforme o uso.

    Importante

    As regras de modo exclusivo e modo proibido têm prioridade maior que as regras de modo normal. Se um job não corresponder a uma regra de modo exclusivo da Cota A ou corresponder a uma regra de modo proibido da Cota A, o job não poderá ser agendado para a Cota A, independentemente de corresponder a uma regra de modo normal da Cota A ou de ser atribuído manualmente à Cota A.

    Project

    Selecione os projetos aos quais a regra se aplica. É possível selecionar até 50 projetos. Se deixar este campo vazio, a regra se aplicará a todos os projetos.

    Job Type

    Selecione os tipos de job aos quais a regra se aplica.

    Valores válidos:

    • SQL: jobs SQL

    • SQLRT: jobs SQL de MaxCompute Query Acceleration

    • SQLCost: jobs de estimativa de custo SQL

    • LOT: jobs MapReduce

    • CUPID: jobs Spark ou Mars

    • AlgoTask: jobs de machine learning

    • MaxFrame: jobs do mecanismo de computação distribuída MaxFrame

    • Graph: jobs de computação em grafo

    Este parâmetro está vazio por padrão, o que significa que a regra se aplica a todos os tipos de job.

    Job Priority

    • Insira a prioridade do job à qual a regra se aplica.

    • Insira um intervalo de prioridade de 0-9. Por exemplo, [0,3] corresponde a jobs com prioridades 0, 1, 2 e 3.

    • Se deixar este campo vazio, a regra se aplicará a todas as prioridades de job.

    Job Owner (Account ID)

    • Insira os UIDs dos proprietários de jobs aos quais a regra se aplica. Múltiplos UIDs têm uma relação lógica OR. Insira cada UID em uma nova linha. É possível inserir até 50 UIDs.

    • Para um UID de usuário RAM, adicione o prefixo p4_, por exemplo, p4_12344566777.

    • Se deixar este campo vazio, a regra se aplicará a todos os proprietários de jobs.

    Job Settings

    • Insira pares chave-valor das Configurações do Job no formato Key=Value. Não adicione aspas. Múltiplos parâmetros têm uma relação lógica AND. Insira cada par em uma nova linha. É possível inserir até cinco pares.

    • Por exemplo, para executar todos os jobs de backfill de dados iniciados pelo agendamento do DataWorks na cota atual, insira SKYNET_DAGTYPE=3 nas Configurações do Job. Para obter mais informações, consulte Isolar jobs de backfill de dados.

    • Se deixar este campo vazio, a regra se aplicará a todas as configurações.

    Descrição da regra de cota interativa

    Parâmetro

    Descrição da regra de cota interativa

    Rule Name

    • Nome personalizado da regra de cota.

    • O nome deve começar com uma letra e conter apenas letras, dígitos e sublinhados (_).

    Rule Mode

    Modo de execução da regra de cota. Valores válidos:

    • NORMAL: modo normal.

      Se as características de um job corresponderem a uma regra de cota, o job será agendado para execução nessa cota.

      • Quando um job corresponde a uma regra de cota, ele é agendado para execução nessa cota.

      • Quando um job corresponde simultaneamente a várias regras de cota, ele é agendado para execução na cota criada há mais tempo.

      • Quando um job não corresponde a nenhuma regra de cota, ele usa a cota padrão do projeto, mesmo que o job não corresponda às regras da cota padrão.

      • Quando uma cota, como etl_1, é especificada no nível do job, o job será agendado para a cota etl_1, mesmo que o job não corresponda às regras da cota etl_1.

    • EXCLUSIVE: modo exclusivo.

      Um job é agendado para esta cota apenas se suas características corresponderem a esta regra. Caso contrário, o job fica proibido de usar esta cota.

      Os exemplos a seguir ilustram a diferença em relação ao modo normal:

      • Por exemplo, se a cota padrão de um projeto, etl_2, estiver associada ao Project_2, e etl_2 tiver uma regra de modo exclusivo, um job desse projeto deverá corresponder à regra para usar etl_2. Se não houver correspondência, o envio falhará. No modo normal, o job poderia usar etl_2 e ser agendado para execução em etl_2 mesmo sem correspondência.

      • Se você especificar uma cota chamada etl_3 usando o comando set odps.task.wlm.quota=etl_3 (i.e. use quota etl_3), e etl_3 tiver uma regra de modo exclusivo que o job não atenda, o envio do job falhará. Em contraste, se etl_3 tivesse apenas uma regra de modo normal, o job poderia ser agendado para execução em etl_3.

    • ANTI: modo proibido.

      Se um job corresponder a esta regra, ele ficará proibido de usar esta cota. O job será então direcionado para a cota de computação padrão do seu projeto. Se a cota padrão for esta mesma cota proibida, o job será agendado para a cota disponível mais antiga na região, o que pode incluir cotas de pagamento conforme o uso.

    Importante

    As regras de modo exclusivo e modo proibido têm prioridade maior que as regras de modo normal. Se um job não corresponder a uma regra de modo exclusivo da Cota A ou corresponder a uma regra de modo proibido da Cota A, o job não poderá ser agendado para a Cota A, independentemente de corresponder a uma regra de modo normal da Cota A ou de ser atribuído manualmente à Cota A.

    Project

    Selecione os projetos aos quais a regra se aplica. É possível selecionar até 50 projetos. Se deixar este campo vazio, a regra se aplicará a todos os projetos.

    Job Type

    Valor fixo: SQL (jobs SQL).

    Job Priority

    Não aplicável.

    Job Owner (Account ID)

    • Insira os UIDs dos proprietários de jobs aos quais a regra se aplica. Múltiplos UIDs têm uma relação lógica OR. Insira cada UID em uma nova linha. É possível inserir até 50 UIDs.

    • Para um UID de usuário RAM, adicione o prefixo p4_, por exemplo, p4_12344566777.

    • Se deixar este campo vazio, a regra se aplicará a todos os proprietários de jobs.

    Job Settings

    Não aplicável.

    Especifique pelo menos um dos seguintes parâmetros: Project, Job Type, Job Priority, Job Owner (UID) ou Job Settings. Quaisquer parâmetros deixados em branco corresponderão a todas as opções.

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 ProjectList para 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 refill e configure uma regra para a cota refill. Se desejar que todos os jobs de backfill de dados iniciados pelo DataWorks sejam executados na cota refill por padrão, configure uma regra de modo normal. Para fazer isso, insira SKYNET_DAGTYPE=3 nas 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 P1 com prioridade do job entre 5 e 9 sejam executados na cota refill. Para isso, configure uma regra de modo normal, selecione P1 para o projeto, insira [5,9] para a prioridade e insira SKYNET_DAGTYPE=3 para Job Settings.

    Nota

    A 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 Type SQL.

Combine também essas condições de regra para obter um controle mais refinado sobre o agendamento de jobs.