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 |
|
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. |
|
|
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 complexitye não corresponde a um valor monetário.NotaO 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.
NotaAntes 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.
NotaCusto 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 |
|
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. |
|