Este tópico descreve como analisar a distribuição de custos do MaxCompute por meio de registros de uso. A análise das faturas ajuda a evitar custos inesperados, maximizar a utilização de recursos e reduzir gastos gerais.
Contexto
O MaxCompute (anteriormente ODPS) é um data warehouse inteligente em nuvem SaaS de nível empresarial desenvolvido pela Alibaba Cloud. É econômico, seguro, orientado por IA e suporta múltiplos modelos de computação. Os recursos de computação estão disponíveis por dois métodos de faturamento: assinatura e pagamento conforme o uso. O MaxCompute cobra diariamente com base em cada projeto, e as faturas são geradas antes das 06:00 do dia seguinte. Para obter mais informações sobre itens faturáveis e métodos de faturamento do MaxCompute, consulte Itens faturáveis e métodos de faturamento.
O MaxCompute oferece insights sobre flutuações na fatura, geralmente aumentos de custo ocorridos durante o desenvolvimento de dados ou antes do lançamento de um produto. Analise essas flutuações para otimizar os jobs do seu projeto MaxCompute. No console do Billing Management da Alibaba Cloud, baixe registros de uso de todos os produtos faturáveis. Para mais informações sobre 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 informações detalhadas de uso diário e entender a origem dos custos. Por exemplo, identifique quais jobs geram custos diários de 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 diferir dos detalhes da 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 horas de início e término.
Se um job for executado entre dois dias, por exemplo, começando 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. Contudo, 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, caso houvesse 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, isso se aplicava aos registros de uso para 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 por pagamento conforme o uso por padrão nesse cenário, selecione MaxCompute(Pay-as-you-go).
ODPS_QUOTA_USAGE: Detalhes de uso para 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, siga esta etapa e importe os registros para o MaxCompute. Se pretender usar apenas um aplicativo de planilha como o Excel, pule esta etapa.
-
Use o cliente MaxCompute (odpscmd) para criar a tabela
maxcomputefeeconforme a instrução de exemplo a seguir.CREATE TABLE IF NOT EXISTS maxcomputefee ( projectid STRING COMMENT 'Project ID' ,feeid STRING COMMENT 'Billing information ID' ,meteringtime STRING COMMENT 'File header (MeteringTime)' ,type STRING COMMENT 'Data type, such as Storage, ComputationSQL, or DownloadEx' ,starttime STRING COMMENT 'Start time' ,storage BIGINT COMMENT 'Storage (bytes)' ,endtime STRING COMMENT 'End time' ,computationsqlinput BIGINT COMMENT 'SQL/Interactive analysis read volume (bytes)' ,computationsqlcomplexity DOUBLE COMMENT 'SQL complexity' ,uploadex BIGINT COMMENT 'Inbound public traffic (bytes)' ,download BIGINT COMMENT 'Outbound public traffic (bytes)' ,cu_usage DOUBLE COMMENT 'MapReduce/Spark job computing (core*seconds)' ,Region STRING COMMENT 'Region' ,input_ots BIGINT COMMENT 'Data input from Tablestore (bytes)' ,input_oss BIGINT COMMENT 'Data input from OSS (bytes)' ,source_id STRING COMMENT 'DataWorks scheduled job ID' ,source_type STRING COMMENT 'Computing resource specification' ,RecycleBinStorage BIGINT COMMENT 'Backup storage (bytes)' ,JobOwner STRING COMMENT 'Job owner' ,Signature STRING COMMENT 'SQL job signature' );A lista a seguir descreve os campos nos registros de uso.
Project ID: Lista de projetos MaxCompute da conta atual da Alibaba Cloud ou da conta à qual o usuário RAM pertence.
Billing information ID: ID de faturamento correspondente ao ID da tarefa para tarefas de armazenamento e computação, ao InstanceID para jobs SQL e ao SessionId do Tunnel para tarefas de upload e download.
Data type: 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.
Storage (bytes): Quantidade de armazenamento lida por hora, em bytes.
Start time ou End time: Os 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 para cada execução SQL, em bytes.
SQL complexity: Complexidade da instrução SQL, fator determinante para o faturamento.
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-segundos (
core*seconds). Converta esse valor para core-horas para fins de faturamento.Data input from Tablestore (bytes), Data input from OSS (bytes): Volume de dados lidos de tabelas externas faturáveis, em 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.
-
Carregar dados usando o Tunnel.
Ao carregar o arquivo CSV, certifique-se de 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á.tunnel upload ODPS_2019-01-12_2019-01-14.csv maxcomputefee -c "UTF-8" -h "true" -dfp "yyyy-M-d HH:mm";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 no DataWorks para realizar essa operação. Para mais informações, consulte Usar o DataWorks (Batch e Real-time).
-
Execute a seguinte instrução para verificar os dados.
SELECT * FROM maxcomputefee limit 10;
Etapa 3: Analisar dados de faturamento
Analisar custos de SQL
Jobs SQL são utilizados por mais de 95% dos usuários do MaxCompute e geralmente representam uma grande parcela dos gastos.
Taxa para um job SQL = Volume de dados de entrada × Complexidade SQL × Preço unitário (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 certos jobs SQL excede as expectativas ou se há tarefas SQL em excesso. O custo de um job SQL é calculado pela seguinte fórmula:
Volume de Leitura SQL/Análise Interativa (Bytes) / 1024 / 1024 / 1024 × Complexidade SQL × Preço Unitário SQL.Por exemplo, para uma tarefa SQL standard com leitura de dados de
7352600872 bytes, o custo éLeitura de dados SQL (7352600872 bytes / 1024 / 1024 / 1024) × Complexidade SQL de 1 × 0,0438 USD/(GB × complexidade) = 0,292 USD.Se sua fatura aumentar repentinamente, verifique primeiro se o pacote de recursos por assinatura foi esgotado. Após o consumo total da cota de computação do pacote de recursos, qualquer uso excedente é automaticamente faturado com base no pagamento conforme o uso (a um preço unitário de USD 0,0438 por GB × complexidade), 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 onde a categoria de dados é ComputationSql e ordene-os em ordem decrescente por Volume de Leitura SQL/Análise Interativa (Bytes) (campo
computationsqlinput) para encontrar o registro com o maior volume de leitura.Anote o ID da informação de medição 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 a conclusão da Etapa 2 e a geração da tabela
maxcomputefee: -
-- Analyze SQL consumption, ranked by sqlmoney. SELECT to_char(endtime,'yyyymmdd') as ds,feeid as instanceid ,projectid ,computationsqlcomplexity -- Complexity ,SUM((computationsqlinput / 1024 / 1024 / 1024)) as computationsqlinput -- Data input (GB) ,SUM((computationsqlinput / 1024 / 1024 / 1024)) * computationsqlcomplexity * 0.0438 AS sqlmoney FROM maxcomputefee WHERE TYPE = 'ComputationSql' AND to_char(endtime,'yyyymmdd') >= '20190112' GROUP BY to_char(endtime,'yyyymmdd'),feeid ,projectid ,computationsqlcomplexity ORDER BY sqlmoney DESC LIMIT 10000 ;
Os resultados da consulta permitem tirar as seguintes conclusões:
Para jobs grandes, reduza os custos diminuindo a quantidade de dados lidos e 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.wait 20xxx162741579glgfd9o7; --- Run log --- ID = 20xxx3162741579glgfd9o7 Log view: http://logview.odps.aliyun.com/logview/?h=http://service.cn.maxcompute.aliyun-inc.com/api&p=xxx&i=20220318162741579glgfd9o7&token=dW1OQXBjRW5SR1FvSUprZGZSeHYyVkFycys4PSxPRFBTX09CTzoxMzk2OTkzxxxbnQi0lt7IkFjdG1vbI16WyJvZHBzOlJlYWQiXSwlRWzmN0RjolQWxsb3ciLCJSZXNvdXJjZS16WyJhY3M6b2RwczoqOioiXX0xxx 1Y3RzL2Jpb19kb2NfdGVzdC9pbnN0YW5jZXMvMjAyMjAzMTgxNjI3NDE1NzlnbGdmZDlvNyJdfVxxx Job Queueing... -
Execute o seguinte comando para visualizar as informações detalhadas do job.
DESC instance 2016070102275442go3xxxxxx;O seguinte resultado é retornado:
ID 2016070102275442go3xxxxxx Owner ALIYUN$***@aliyun-inner.com StartTime 2016-07-01 10:27:54 EndTime 2016-07-01 10:28:16 Status Terminated console_query_task_1467340078684 Success Query select count(*) from src where ds='20160628'; -
Abra a URL do Logview em um navegador. Na aba SourceXML da página do Logview, obtenha o SKYNET_NODENAME da instância.
<?xml version="1.0" encoding="UTF-8"?> <Job> <Priority>8</Priority> <Tasks> <SQL> <Name>console_query_task_1647620861362</Name> <Config> <Property> <Name>settings</Name> <Value>{"SKYNET_BUSINESS_NAME":"-","WRAPPER_SQLSEQ":"1","WRAPPER_RETRYNUM":"1","odps.idata.useragent":"CLT(0.37.7 : 6c02e41); Linux(/)","SKYNET_DAGTYPE":"0","SKYNET_ONDUTY":"280316532466682512","SKYNET_SYSTEMID":"-","SKYNET_BIZDATE":"202xxx18","SKYNET_CYCTIME":"20220xxx0100","SKYNET_PACKAGEID":"-","SKYNET_BUSINESS_ID":"-","SKYNET_PRIORITY":"1","SKYNET_TASKID":"43293xxx99","biz_id":"1002778435_20220318_4329323699_43115527_xxx_xxx_xxx_16532466682512_428543003249281","SKYNET_TENANT_ID":"4285xxx49281","SKYNET_ID":"1002xxx35","SKYNET_JOBID":"4311xxx2","SKYNET_NODENAME":"rpxxx_xxx_xxxg","LINK_FILE_ID":"-","odps.sql.select.output.format":"HumanReadable","odps.idata.userenv":"JavaSDK Revision:013e16b,Version:0.37.10,JavaVersion:1.8.0_112,IP:unknown,MAC:unknown"}</Value> ...NotaPara mais informações sobre o Logview, consulte Usar o Logview 2.0 para visualizar informações de execução de jobs.
Se não for possível obter o SKYNET_NODENAME ou se o SKYNET_NODENAME não tiver valor, obtenha o trecho de código na aba SQL Script e pesquise esse trecho no DataWorks para encontrar e otimizar o nó alvo. Para mais informações, consulte Pesquisa de Código do DataWorks.
No DataWorks, pesquise o SKYNET_NODENAME consultado para otimizar o nó alvo.
-
Analisar tendências de crescimento de jobs
Geralmente, o aumento nos custos decorre de um surto no número de jobs, frequentemente resultante de execuções repetidas ou propriedades de agendamento configuradas incorretamente.
-
Método 1: Análise com planilha
Analise os dados onde o tipo de dado é ComputationSql nos seus registros de uso. Conte o número de jobs por dia para cada projeto e verifique se o número de jobs de algum projeto apresenta flutuações significativas.
-
Método 2: Análise com SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analyze job growth trends. SELECT TO_CHAR(endtime,'yyyymmdd') AS ds ,projectid ,COUNT(*) AS tasknum FROM maxcomputefee WHERE TYPE = 'ComputationSql' AND TO_CHAR(endtime,'yyyymmdd') >= '20190112' GROUP BY TO_CHAR(endtime,'yyyymmdd') ,projectid ORDER BY tasknum DESC LIMIT 10000 ;Os resultados da execução mostram a flutuação no número de jobs bem-sucedidos enviados ao MaxCompute do dia 12 ao dia 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 uso experimental e encontra uma cobrança diária de USD 0,00001 mesmo sem negócios ativos. Isso geralmente ocorre porque alguns dados, menores que 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.Se o projeto não for mais necessário, exclua-o na página no console do MaxCompute .
-
Analisar custos de armazenamento por menos de um dia** usando uma planilha**:
-
Visualize 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 de medição diária termina no final 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, calcule primeiro a média de armazenamento de 24 horas e, em seguida, calcule o custo usando a fórmula de faturamento.
-- Calculate average storage. 333,507,833,900 bytes × 15 / 1024 / 1024 / 1024 / 24 = 194.127109076362103 GB -- The storage cost for one day is calculated as follows, with the result rounded to four decimal places. 194.127109076362103 GB × USD 0.0006/GB/day = USD 0.1165/day
-
-
Analisar a distribuição de custos de armazenamento usando SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analyze storage costs. SELECT t.ds ,t.projectid ,t.storage ,CASE WHEN t.storage < 0.5 THEN t.storage*0.0015 -- When the actual data storage of the project is greater than 0 MB and less than or equal to 512 MB, the unit price is USD 0.0015/GB/day. WHEN t.storage >= 0.5 THEN t.storage*0.0006 -- When the actual data storage of the project is greater than 512 MB, the unit price is USD 0.0006/GB/day. 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 seguinte resultado de execução serve apenas para demonstração. A consulta retorna três registros ordenados em ordem decrescente por
storage_fee: em 13/01/2019, o armazenamento foi de aproximadamente 8.467 GB, custando cerca de CNY 73,31; em 12/01/2019, o armazenamento foi de cerca de 4.527 GB, custando aproximadamente CNY 40,22; e em 14/01/2019, 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 otimizar o armazenamento, recomendamos definir um ciclo de vida para tabelas e excluir tabelas temporárias não utilizadas.
-
Analisar a distribuição de armazenamento de arquivamento, armazenamento de acesso infrequente, acesso a armazenamento de arquivamento e acesso a armazenamento de acesso infrequente usando SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analyze archive storage costs. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(storage/1024/1024/1024)/24*0.0011 AS longTerm_storage FROM maxcomputefee WHERE TYPE = 'ColdStorage' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid; -- Analyze infrequent access storage costs. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(storage/1024/1024/1024)/24*0.0011 AS lowFre_storage FROM maxcomputefee WHERE TYPE = 'LowFreqStorage' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid; -- Analyze archive storage access costs. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(computationsqlinput/1024/1024/1024)*0.522 AS longTerm_IO FROM maxcomputefee WHERE TYPE = 'SqlLongterm' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid; -- Analyze infrequent access storage access costs. SELECT to_char(starttime,'yyyymmdd') as ds ,projectid ,SUM(computationsqlinput/1024/1024/1024)*0.522 AS lowFre_IO FROM maxcomputefee WHERE TYPE = 'SqlLowFrequency' and to_char(starttime,'yyyymmdd') >= '20190112' GROUP BY to_char(starttime,'yyyymmdd') ,projectid;
Analisar custos de download
Para downloads de dados pela internet pública ou entre regiões, o MaxCompute cobra com base na quantidade de dados baixados.
Custo de download = Volume de dados baixados × Preço unitário (USD 0,1166/GB)
-
Método 1: Análise com planilha
O tipo de dado 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) incorre em uma taxa de
(38.199.736 bytes/1024/1024/1024) × 0,1166 USD/GB = 0,004 USD. Exemplo de otimização de download: Verifique as configurações do serviço Tunnel para identificar se os custos decorrem do uso de um endpoint de rede pública. Para mais informações, consulte Endpoints. Se estiver baixando grandes quantidades de dados da região China (Xangai) para um local fora da rede interna dessa região (como um servidor on-premises em Suzhou), baixe primeiro os dados para uma máquina virtual (VM) ECS dentro da região China (Xangai) para aproveitar o tráfego de rede interna.
-
-
Método 2: Análise com SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analyze download consumption details. 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
Custo diário de computação para um job MapReduce = Total de horas de computação do dia × Preço unitário (USD 0,0690/Hora/Tarefa)
-
Método 1: Análise com planilha
Analise os dados onde o tipo de dado é 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 é
(Computação de job MapReduce/Spark (core*seconds) / 3600) × Preço unitário (USD 0,0690). -
Método 2: Análise com SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analyze MapReduce job consumption. 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)
Custo 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 com planilha
Analise os dados onde o tipo de dado é ComputationSqlOTS ou ComputationSqlOSS nos seus registros de uso. Classifique os custos de computação para jobs de tabela externa SQL. O custo é calculado usando a fórmula:
(Volume de leitura SQL/análise interativa (bytes) / 1024 / 1024 / 1024) × Preço unitário (USD 0,0044). -
Método 2: Análise com SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analyze Tablestore external table SQL job consumption. 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 ; -- Analyze OSS external table SQL job consumption. 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
Custo diário de computação para um job Spark = Total de horas de computação do dia × Preço unitário (USD 0,1041/Hora/Tarefa)
-
Método 1: Análise com planilha
Analise os dados onde o tipo de dado é Spark nos seus registros de uso. Classifique os custos dos jobs. O custo é calculado usando a fórmula:
(Computação de job MapReduce/Spark (core*seconds) / 3600) × Preço unitário (USD 0,1041). -
Método 2: Análise com SQL
Este método exige a conclusão da Etapa 2 e a geração da tabela
maxcomputefee:-- Analyze Spark job consumption. 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 ;