Analise a distribuição de custos do MaxCompute por meio dos registros de uso para evitar gastos inesperados, maximizar a utilização de recursos e reduzir despesas gerais.
Contexto
O MaxCompute (anteriormente conhecido como ODPS) é um data warehouse inteligente em cloud SaaS de nível empresarial desenvolvido pela Alibaba Cloud. Ele oferece custo-benefício, segurança, integração com IA e suporte a múltiplos modelos de computação. Os recursos de computação são cobrados via assinatura ou pagamento conforme o uso. A cobrança do MaxCompute ocorre diariamente por projeto, com faturas geradas antes das 06:00 do dia seguinte. Para mais informações sobre itens faturáveis e métodos de cobrança, consulte Itens faturáveis e métodos de cobrança.
Flutuações na fatura — geralmente aumentos de custo — podem ocorrer durante o desenvolvimento de dados ou antes do lançamento de um produto. Analisar essas variações ajuda a otimizar os jobs do seu projeto MaxCompute. No console do Billing Management da Alibaba Cloud, é possível baixar registros de uso de todos os produtos faturáveis. Para saber como obter e baixar faturas, consulte Visualizar detalhes da fatura
.
Etapa 1: Baixar detalhes de uso
Acesse a página View Usage Details
para baixar as informações diárias de uso e entender como seus custos são gerados, incluindo quais jobs impulsionam seus gastos diários com armazenamento e computação.
No topo da página, a seção Export instructions informa que os dados de uso ficam disponíveis após as 12:00 do segundo dia do mês seguinte. Os detalhes de uso servem apenas como referência e podem divergir dos detalhes da sua fatura.
Clique em Export CSV. Após concluir a exportação, acesse a página Export Record para baixar o arquivo de registros de uso.
Parâmetros
-
Time Period: Clique para selecionar as datas de início e fim.
Se um job for executado entre dois dias — por exemplo, iniciando em 1º de dezembro e terminando em 2 de dezembro — defina a hora de início como 1º de dezembro para localizar o job nos registros de uso baixados. No entanto, os custos desse job constarão na fatura de 2 de dezembro.
-
Commodity Name:
MaxCompute(Subscription)
MaxCompute(Pay-as-you-go)
Billable Item: Selecione um item conforme sua necessidade.
-
Billable Item
-
ODPSDataPlus:
Aplica-se quando você adquiriu apenas projetos por assinatura e nenhum projeto por pagamento conforme o uso em uma região. Esta opção fornece registros de uso para itens faturáveis por pagamento conforme o uso, como armazenamento e download dentro dos projetos por assinatura.
Antes de 25 de abril de 2024, se você tivesse projetos por assinatura e por pagamento conforme o uso ativados na região China (Hong Kong) ou em outra região fora da China continental, esta opção aplicava-se aos registros de uso dos itens faturáveis de armazenamento e download em projetos que usavam cotas de computação por assinatura por padrão. Para consultar registros de uso de projetos que usavam cotas de pagamento conforme o uso por padrão nesse cenário, selecione MaxCompute(Pay-as-you-go).
ODPS_QUOTA_USAGE: Detalhes de uso de recursos reservados elasticamente para computação e Tunnel dedicado.
MaxCompute(Pay-as-you-go): Registros de uso para itens faturáveis por pagamento conforme o uso, como computação, armazenamento e download.
-
Time Unit: O padrão é Hour.
Etapa 2 (opcional): Carregar detalhes de uso no MaxCompute
Para analisar registros de uso com SQL do MaxCompute, importe-os para o MaxCompute. Caso prefira usar um aplicativo de planilha como o Excel, pule esta etapa.
-
Utilize o cliente MaxCompute (odpscmd) para criar a tabela
maxcomputefeeconforme o exemplo abaixo.A lista a seguir descreve os campos presentes nos registros de uso.
Project ID: Lista de projetos MaxCompute da conta Alibaba Cloud atual ou da conta à qual o usuário RAM pertence.
Billing information ID: ID de faturamento, correspondente ao task ID para tarefas de armazenamento e computação, ao InstanceID para jobs SQL e ao Tunnel SessionId para tarefas de upload e download.
-
Data type
Storage (bytes): Quantidade de armazenamento lida por hora, em bytes.
Start time ou End time: Jobs são medidos com base no tempo real de execução. Apenas o uso de armazenamento é amostrado uma vez por hora.
SQL/Interactive analysis read volume (bytes): Para computação SQL, representa o volume de dados de entrada de cada execução SQL, em bytes.
SQL complexity: Complexidade da instrução SQL, que é um fator de cobrança.
Inbound public traffic (bytes) ou Outbound public traffic (bytes): Volume de dados para uploads ou downloads públicos, respectivamente, em bytes.
MapReduce/Spark job computing (core*seconds): A unidade para computação de jobs MapReduce ou Spark é core-seconds (
core*seconds). É necessário converter esse valor para core-hours para fins de faturamento.-
Data input from Tablestore (bytes), Data input from OSS (bytes)
Backup storage (bytes): Quantidade de armazenamento de backup lida por hora, em bytes.
Region: Região onde o projeto MaxCompute está localizado.
Job owner: Usuário que enviou o job.
SQL job signature: Assinatura que identifica um job SQL.
-
Carregue dados usando o Tunnel.
Ao carregar o arquivo CSV, garanta que o número de colunas e os tipos de dados no arquivo correspondam aos da tabela
maxcomputefee. Caso contrário, a importação falhará.Para mais informações sobre configurações do Tunnel, consulte Comandos do Tunnel.
Também é possível utilizar o recurso de importação de dados do DataWorks para realizar essa operação. Para mais informações, consulte Usar o DataWorks (Batch e Real-time).
Execute a instrução a seguir para verificar os dados.
Instruções
Leia o conteúdo em inglês para compreender O QUE precisa ser comunicado
Escreva o texto em português do Brasil DO ZERO — esqueça a estrutura das frases em inglês
Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão
Placeholders xref (
{XREF_N}) — copie literalmente, NÃO traduza nem modifiqueAplique todas as regras específicas de idioma rigorosamente
Aplique as regras de stopwords com tolerância zero
Use modo imperativo em passos numerados e listas de procedimentos
Garanta consistência terminológica — mesmo termo = mesma tradução em todo o documento
Varie os inícios de frase em listas/tabelas — nenhum iniciador repetido 3+ vezes
-
Retorne APENAS o documento markdown em português do Brasil, sem explicações
Etapa 3: Analisar dados de faturamento
Analisar custos de SQL
Mais de 95% dos usuários do MaxCompute utilizam jobs SQL, que geralmente representam uma grande parte dos gastos.
NotaFee for one SQL job = Input data volume × SQL complexity × Unit price (USD 0.0438/GB)
-
Método 1: Análise com planilha
Analise os dados categorizados como ComputationSql na tabela de registros de uso. Verifique se o custo de determinados jobs SQL excede as expectativas ou se há um número excessivo de tarefas SQL. O custo de um job SQL é calculado pela seguinte fórmula:
SQL/Interactive Analytics Read Volume (Bytes) / 1024 / 1024 / 1024 × SQL Complexity × SQL Unit PricePor exemplo, em uma tarefa SQL padrão com leitura de dados de7352600872(Byte), o custo éLeitura de dados SQL(7352600872(Byte)/1024/1024/1024)×Complexidade SQL 1×CNY 0,3/(GB×complexidade)=CNY 2..
Por exemplo, para uma tarefa SQL padrão com leitura de dados de
7352600872 bytes, o custo éSQL data read (7352600872 bytes / 1024 / 1024 / 1024) × SQL complexity of 1 × 0.0438 USD/(GB × complexity) = 0.292 USD.Se sua fatura aumentar repentinamente, verifique primeiro se o pacote de recursos da assinatura foi esgotado. Após a cota de computação do pacote de recursos ser consumida, qualquer uso excedente é automaticamente faturado no modelo de pagamento conforme o uso (at a unit price of USD 0.0438 per GB × complexity), o que pode causar um pico repentino de custos.
Para localizar um job SQL de alto custo, siga estas etapas:
No CSV de detalhes de uso, filtre os registros em que a categoria de dados seja ComputationSql e ordene-os em ordem decrescente por SQL/Interactive Analytics Read Volume (Bytes) (campo
computationsqlinput) para encontrar o registro com o maior volume de leitura.Anote o metering information ID da entrada (ou seja, o campo
feeid).No cliente MaxCompute (odpscmd) ou no DataWorks, execute o comando
wait <instanceid>;para obter a URL do Logview. Abra a URL no navegador para visualizar o conteúdo SQL e localizar o job de alto custo.
Método 2: Análise com SQL
Este método exige que você tenha concluído a Etapa 2 e gerado a tabela
maxcomputefeeOs resultados da consulta incluem colunas como ds, instanceid, projectid, source_type, computationsqlcomplexity, computationsqlinput e sqlmoney, que apresentam os custos detalhados de computação SQL para cada instância em diferentes datas. A coluna sqlmoney indica o custo do SQL, enquanto a coluna source_type diferencia os tipos de computaçãoOdpsSpoteOdpsStandard. :Os resultados da consulta revelam o seguinte:
Para jobs grandes, reduza os custos diminuindo a quantidade de dados lidos e reduzindo a complexidade do SQL.
Agrupe os dados pelo campo
ds(por dia) para analisar a tendência dos custos de consumo de SQL ao longo de um período. Por exemplo, utilize ferramentas como um arquivo Excel local ou o Quick BI para criar um gráfico de linhas, permitindo uma visualização mais intuitiva da tendência do job.-
Utilize os resultados para identificar alvos de otimização:
-
Obtenha a URL do Logview do log de execução da instância alvo usando o instanceid consultado.
No cliente MaxCompute (odpscmd) ou no DataWorks, execute o comando
wait <instanceid>;para visualizar o log de execução da instância.Execute o comando a seguir para visualizar as informações detalhadas do job.
O seguinte resultado é retornado:
Abra a URL do Logview em um navegador. Na aba SourceXML da página do Logview, obtenha o SKYNET_NODENAME da instância.
NotaPara obter mais informações sobre o Logview, consulte Usar o Logview 2.0 para visualizar informações de execução de jobs.
Caso não consiga obter o SKYNET_NODENAME ou se ele não tiver valor, obtenha o trecho de código na aba SQL Script e pesquise esse trecho no DataWorks para localizar e otimizar o nó alvo. Para mais detalhes, consulte Busca de Código no DataWorks.
No DataWorks, pesquise o SKYNET_NODENAME consultado para otimizar o nó alvo.
Analisar tendências de crescimento de jobs
Aumentos de custo geralmente são causados por um surto na contagem de jobs, frequentemente devido a execuções repetidas ou propriedades de agendamento configuradas incorretamente.
-
Método 1: Análise com planilha
Analise os dados cujo tipo seja ComputationSql nos seus registros de uso. Conte o número de jobs por dia para cada projeto e verifique se a quantidade de jobs de algum projeto apresenta flutuações significativas.
-
Método 2: Análise com SQL
Este método exige que você tenha concluído a Etapa 2 e gerado a tabela
maxcomputefee:Os resultados da execução mostram a flutuação no número de jobs bem-sucedidos enviados ao MaxCompute entre os dias 12 e 14.
Analisar custos de armazenamento
-
Analisar o motivo de uma cobrança de armazenamento de USD 0,00001 usando uma planilha:
Você ativa o MaxCompute para teste e encontra uma cobrança diária de USD 0,00001 mesmo sem negócios ativos. Isso geralmente ocorre porque alguns dados, inferiores a 0,5 GB, permanecem armazenados no MaxCompute.
Visualize o item faturável Storage na coluna Data type. Por exemplo, o projeto
maxcompute_doccontém 508 bytes de dados. De acordo com as regras de faturamento de custo de armazenamento, você é cobrado em USD 0,00001 para armazenamento de dados de até 512 MB. Os detalhes de uso no arquivo CSV exportado mostram colunas para Project ID (maxcompute_doc), Billing information ID, Data type (Storage) e Storage (bytes). Cada registro indica uma quantidade de armazenamento de 508 bytes, confirmando que uma pequena quantidade de dados residuais está gerando o custo. Se esses dados forem apenas para teste, resolva esse problema de uma das seguintes maneiras:Se os dados da tabela não forem mais utilizados, execute a instrução
Drop Tablepara excluir os dados da tabela no projeto.Caso o projeto não seja mais necessário, exclua-o na página do console do MaxCompute .
-
Analisar custos de armazenamento por menos de um dia usando uma planilha:
-
Verifique o item faturável Storage em Data type. Suponha que 333.507.833.900 bytes de dados estejam armazenados no projeto alian (nome do projeto de exemplo). Como os dados foram carregados às 08:00, as cobranças de armazenamento são medidas a partir das 09:07, totalizando 15 horas.
O período diário de medição termina no fim do dia, portanto, o último registro não é incluído na fatura de 4 de abril.
-
De acordo com as regras de faturamento de armazenamento
-- Calcular o armazenamento médio. 333.507.833.900 bytes × 15 / 1024 / 1024 / 1024 / 24 = 194,127109076362103 GB -- O custo de armazenamento por um dia é calculado da seguinte forma, com o resultado arredondado para quatro casas decimais. 194,127109076362103 GB × USD 0,0006/GB/dia = USD 0,1165/dia, calcule primeiro a média de armazenamento de 24 horas e, em seguida, calcule o custo usando a fórmula de faturamento.
Analisar a distribuição de custos de armazenamento usando SQL
Este método exige que você tenha concluído a Etapa 2 e gerado a tabela
maxcomputefee:-- Analisar custos de armazenamento. SELECT t.ds ,t.projectid ,t.storage ,CASE WHEN t.storage < 0.5 THEN t.storage*0.0015 -- Quando o armazenamento real de dados do projeto é maior que 0 MB e menor ou igual a 512 MB, o preço unitário é USD 0,0015/GB/dia. WHEN t.storage >= 0.5 THEN t.storage*0.0006 -- Quando o armazenamento real de dados do projeto é maior que 512 MB, o preço unitário é USD 0,0006/GB/dia. END storage_fee FROM ( SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(storage/1024/1024/1024)/24 AS storage FROM maxcomputefee WHERE TYPE = 'Storage' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid ) t ORDER BY storage_fee DESC ;O resultado de execução a seguir serve apenas para demonstração. A consulta retorna três registros ordenados em ordem decrescente por
storage_fee: em 2019-01-13, o armazenamento foi de aproximadamente 8.467 GB, custando cerca de CNY 73,31; em 2019-01-12, o armazenamento foi de cerca de 4.527 GB, custando aproximadamente CNY 40,22; e em 2019-01-14, o armazenamento foi de cerca de 2.672 GB, custando aproximadamente CNY 24,63. Os resultados da execução permitem tirar as seguintes conclusões:O armazenamento aumentou no dia 12 e diminuiu no dia 14.
Para otimização de armazenamento, recomenda-se definir um ciclo de vida para as tabelas e excluir tabelas temporárias não utilizadas.
Analisar a distribuição de armazenamento de arquivamento, armazenamento de acesso infrequente, acesso ao armazenamento de arquivamento e acesso ao armazenamento de acesso infrequente usando SQL
Este método exige que você tenha concluído a Etapa 2 e gerado a tabela
maxcomputefee:Analisar custos de download
O MaxCompute cobra por dados baixados pela internet pública ou entre regiões com base no volume de download.
NotaDownload cost = Downloaded data volume × Unit price (USD 0.1166/GB)
-
Método 1: Análise com planilha
O tipo de dados DownloadEx representa o item faturável para downloads públicos.
-
Com base nos preços de Taxas de download (pagamento conforme o uso), um tráfego público de saída de aproximadamente 0,036 GB (38.199.736 bytes) gera uma taxa de
(38,199,736 bytes/1024/1024/1024) × 0.1166 USD/GB = 0.004 USDCom base nos preços de Taxas de transferência de dados (tráfego público de saída), aproximadamente 0,036 GB (38.199.736 bytes) de tráfego público de saída custam(38.199.736 bytes / 1024 / 1024 / 1024) × 0,80 yuan/GB = 0,028 yuan..
Exemplo de otimização de download: Verifique as configurações do serviço Tunnel para saber se os custos estão sendo gerados pelo uso de um endpoint de rede pública. Para mais informações, consulte Endpoints. Se você estiver baixando grandes quantidades de dados da região China (Shanghai) para um local fora da rede interna dessa região (como um servidor local em Suzhou), baixe primeiro os dados para uma máquina virtual (VM) ECS dentro da região China (Shanghai) para aproveitar o tráfego de rede interna.
Método 2: Análise com SQL
Este método exige que você tenha concluído a Etapa 2 e gerado a tabela
maxcomputefeeCom base nos resultados da execução, analise a tendência dos custos de download em um período específico. Execute também o comandotunnel show historypara visualizar informações históricas detalhadas. Para obter mais informações sobre esse comando, consulte Comandos do Tunnel. :-- Analise os detalhes de consumo de download. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,SUM((download/1024/1024/1024)*0.1166) AS download_fee FROM maxcomputefee WHERE type = 'DownloadEx' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ORDER BY download_fee DESC ;Analisar custos de jobs MapReduce
NotaDaily computing cost for a MapReduce job = Total computing hours for the day × Unit price (USD 0.0690/Hour/Task)
-
Método 1: Análise com planilha
Analise os dados cujo tipo seja MapReduce nos seus registros de uso. Calcule e classifique os custos dos jobs MapReduce por especificação de recurso de computação. A fórmula para calcular o custo de um job MapReduce é
(MapReduce/Spark job computing (core*seconds) / 3600) × Unit price (USD 0.0690). -
Método 2: Análise com SQL
Este método exige que você tenha concluído a Etapa 2 e gerado a tabela
maxcomputefee:-- Analisar o consumo de jobs MapReduce. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(cu_usage/3600)*0.0690 AS mr_fee FROM maxcomputefee WHERE type = 'MapReduce' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,cu_usage ORDER BY mr_fee DESC ;Analisar custos de jobs de tabela externa (Tablestore e OSS)
NotaCusto de computação para um job de tabela externa SQL = Volume de dados de entrada × Preço unitário (USD 0,0044/GB)
-
Método 1: Análise por planilha
Analise os dados cujo tipo seja ComputationSqlOTS ou ComputationSqlOSS em seus registros de uso. Classifique os custos de computação dos jobs de tabela externa SQL. O cálculo do custo segue a fórmula:
(SQL/interactive analysis read volume (bytes) / 1024 / 1024 / 1024) × Unit price (USD 0.0044). -
Método 2: Análise via SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analisar o consumo de jobs SQL da tabela externa do Tablestore. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(computationsqlinput/1024/1024/1024)*1*0.0044 AS ots_fee FROM maxcomputefee WHERE type = 'ComputationSqlOTS' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,computationsqlinput ORDER BY ots_fee DESC ; -- Analisar o consumo de jobs SQL da tabela externa do OSS. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(computationsqlinput/1024/1024/1024)*1*0.0044 AS oss_fee FROM maxcomputefee WHERE type = 'ComputationSqlOSS' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,computationsqlinput ORDER BY oss_fee DESC ;Analisar custos de computação Spark
NotaCusto diário de computação para um job Spark = Total de horas de computação no dia × Preço unitário (USD 0,1041/Hora/Tarefa)
-
Método 1: Análise por planilha
Analise os dados cujo tipo seja Spark em seus registros de uso. Classifique os custos dos jobs. O cálculo do custo segue a fórmula:
(MapReduce/Spark job computing (core*seconds) / 3600) × Unit price (USD 0.1041). -
Método 2: Análise via SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analisar o consumo de jobs do Spark. SELECT TO_CHAR(starttime,'yyyymmdd') AS ds ,projectid ,(cu_usage/3600)*0.1041 AS spark_fee FROM maxcomputefee WHERE type = 'spark' AND TO_CHAR(starttime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(starttime,'yyyymmdd') ,projectid ,cu_usage ORDER BY spark_fee DESC ;
-
-
-
-
-
-
-
: Inclui Standard Storage (Storage), SQL Computing (ComputationSql), Inbound Private Traffic (UploadIn), Outbound Private Traffic (DownloadIn), Inbound Public Traffic (UploadEx) e Outbound Public Traffic (DownloadEx). Apenas tipos específicos são itens faturáveis.
correspondem, respectivamente, aos pacotes Storage-Intensive 160, 320 ou 600.
.
: Volume de dados lidos de tabelas externas faturáveis, em bytes.