Todos os produtos
Search
Central de documentação

MaxCompute:Controle de consumo

Última atualização: Jul 20, 2026

Para evitar cobranças inesperadas ao usar recursos do MaxCompute no modelo pagamento conforme o uso devido a um consumo maior que o esperado em tarefas de computação, defina limiares de monitoramento de consumo para controlar custos. Se o uso de recursos ou os gastos ultrapassarem um limiar predefinido, o sistema aciona automaticamente um alerta e notifica você por mensagem de texto, e-mail, DingTalk ou telefone, permitindo uma resposta rápida para mitigar possíveis riscos financeiros. Controle o consumo de tarefas de computação no modelo pagamento conforme o uso definindo limites de recursos por instrução ou tetos de gastos acumulados diários.

Para evitar cobranças inesperadas ao usar recursos do MaxCompute no modelo pagamento conforme o uso devido a um consumo maior que o esperado em tarefas de computação, defina limiares de monitoramento de consumo para controlar custos. Se o uso de recursos ou os gastos ultrapassarem um limiar predefinido, o sistema aciona automaticamente um alerta e notifica você por mensagem de texto, e-mail, DingTalk ou telefone, permitindo uma resposta rápida para mitigar possíveis riscos financeiros.

Recursos

Os recursos do MaxCompute no modelo pagamento conforme o uso escalam elasticamente sem limites predefinidos de utilização. Para evitar custos inesperados, o MaxCompute oferece os seguintes recursos de controle de consumo:

Recurso

Método de controle

Descrição

Per-statement resource limit

Limitar o consumo de recursos

O MaxCompute estima o consumo de recursos de uma instrução SQL antes da execução. Se o consumo estimado exceder um limiar predefinido, a instrução é bloqueada e o sistema retorna um status de falha com uma mensagem de erro. Este recurso ajuda a evitar que uma única instrução SQL gere custos elevados.

Daily cumulative spend limit

Alerta de custo

Monitora o consumo acumulado diário de SQL padrão em um projeto. Se a soma do consumo acumulado no dia e o consumo estimado de uma nova instrução SQL exceder o limiar predefinido, a nova instrução será bloqueada. O sistema retorna um status de falha e uma mensagem de erro. Esse mecanismo evita que o consumo diário de SQL padrão ultrapasse seu orçamento.

Nota

O consumo acumulado diário de SQL refere-se apenas ao uso medido que ainda não foi faturado. Não inclui descontos ou promoções.

Limite de recursos por instrução

Configuração

Defina um limite de recursos por instrução de uma das seguintes formas:

  • Configuração no nível do projeto

    O proprietário do projeto ou um usuário com a função Super_Administrator deve executar o seguinte comando para ativar ou desativar o limite de recursos por instrução.

    -- Enable the per-statement resource limit.
    SETPROJECT odps.sql.metering.value.max=<m_value>;
    -- Disable the per-statement resource limit.
    SETPROJECT odps.sql.metering.value.max;

    O parâmetro m_value representa o limiar máximo de consumo para uma única instrução SQL. Ele é calculado como SQL read volume (GB) × SQL complexity e não corresponde a um valor monetário.

    Nota

    O consumo por instrução de um projeto é restrito pelo m_value. Se o consumo estimado de uma instrução exceder esse m_value, o sistema bloqueia sua execução.

  • Configuração no nível da sessão

    Para ativar um limite de recursos por instrução em uma única execução, envie o comando abaixo junto com sua instrução SQL. Caso não inclua este comando, o limite permanecerá desativado. Esta configuração é válida apenas para a execução atual.

    SET odps.sql.metering.value.max=<m_value>;

Recomendações

Siga estas práticas recomendadas:

  • Defina um m_value no nível do projeto com base no histórico de consumo de SQL e nos gastos esperados.

    • Baixe os dados detalhados de medição diária e calcule o consumo de recursos para tarefas SQL (tarefas com classificação de dados ComputationSql) no nível do projeto. O consumo de recursos é calculado como SQL read volume (GB) × SQL complexity. Determine um valor adequado com base no maior consumo diário normal, considerando as flutuações do negócio.

    • Como alternativa, converta o consumo de computação em custo . Com base nas necessidades do seu negócio, determine um custo aceitável e converta esse custo de volta para um valor de consumo: .

  • Estabeleça primeiro um limite no nível do projeto e depois use um limite m_value no nível da sessão para instruções SQL específicas e excepcionais.

    Nota
    • Antes de definir um limite no nível da sessão, confirme se a instrução SQL específica realmente precisa dele para evitar uso indevido.

    • Se houver limites configurados tanto no nível do projeto quanto no nível da sessão, o limite do nível da sessão terá precedência.

      Por exemplo, se o m_value de um projeto estiver definido como 100, mas uma instrução SQL específica dentro desse projeto tiver um m_value de nível de sessão igual a 200, a instrução será bloqueada apenas se o consumo estimado exceder 200, e não 100. Outras instruções SQL sem limite no nível da sessão continuam sujeitas ao limite do projeto de 100 e serão bloqueadas se o consumo estimado ultrapassar esse valor.

  • A definição de limites no nível do projeto ou da sessão afeta a execução de tarefas. Utilize esses limites em conjunto com um recurso de alerta de falha de tarefa, como o intelligent monitoring do DataWorks, para detectar falhas rapidamente e intervir manualmente. Isso evita que tarefas críticas sejam bloqueadas e impactem as operações do negócio.

Limite de gastos acumulados diários

Configuração

Defina um limite de gastos acumulados diários para um projeto executando o comando a seguir. Apenas o proprietário do projeto ou um usuário com a função Super_Administrator pode executar este comando.

SETPROJECT odps.costcontrol.rule={"byDate":{"sql":<Limit>}};
  • byDate: Define um limite diário. O consumo acumulado é calculado no período das 00:00:00 às 23:59:59 (UTC+8). O contador é reiniciado no dia seguinte.

  • Limit: O limiar de gastos acumulados diários para SQL padrão no projeto, especificado em USD. Este rastreamento de consumo não inclui descontos ou promoções.

    Nota

    Custo por instrução SQL = Volume de dados verificados (GB) × Complexidade × 0,0438. Na região Saudi Arabia (Riyadh), operada por um parceiro, a taxa de faturamento de SQL padrão é de 0,05256 USD/GB.

Notas de uso

Após definir o limite, aplicam-se as seguintes regras:

Tipo de regra

Comportamento do sistema

Exemplo e recomendação

Configuração inicial

O sistema acumula o consumo diário total de SQL padrão no projeto e estima o consumo de novas instruções SQL padrão enviadas.

Exemplo: Ao definir o limite no nível do projeto pela primeira vez executando SETPROJECT odps.costcontrol.rule={"byDate":{"sql":100}};, o sistema começa a acumular o total diário e a estimar o custo de novas tarefas.

Atualização de um valor existente

O sistema compara a nova estimativa de consumo com o valor acumulado e o novo limite para determinar se deve bloquear a tarefa.

Suponha que o limite diário original era 100 e o consumo acumulado atual é 99. Você altera o limite para 150 e envia uma nova instrução SQL padrão.

O sistema primeiro estima o custo da nova instrução SQL (por exemplo, 20). Se a soma do custo estimado e do consumo acumulado (20 + 99) for menor ou igual a 150, a instrução SQL será executada. Caso contrário, ela será bloqueada.

A soma do consumo acumulado diário e estimado excede o Limit

O sistema impede a execução da tarefa SQL padrão recém-enviada e retorna uma mensagem de erro.

  • Exemplo de erro:

    Após definir um limite de consumo usando o comando setproject odps.costcontrol.rule={"byDate":{"sql":100}};, se o consumo acumulado diário de SQL padrão no projeto exceder o limite, a tarefa falhará com o seguinte erro:

    Exceed Cost Limit : 
        {"AlreadyCost":"100.1","InstanceId":"xxx","Limit":"100","Project":"xxx","TaskType":"SQL","ThisTaskWillCost":"0","TimeWindow":"BYDATE"}
  • Recomendação:

    Utilize este recurso juntamente com uma função de alerta de falha de tarefa, como o intelligent monitoring do DataWorks, para ser notificado prontamente sobre falhas. Isso permite intervenção manual e evita que tarefas críticas sejam bloqueadas, impactando seu negócio.