Todos os produtos
Search
Central de documentação

Simple Log Service:Acelerar a consulta e a análise de logs

Última atualização: Aug 31, 2026

Aplique os métodos a seguir para acelerar a consulta e a análise de logs no Simple Log Service.

Aumentar o número de shards ou ative o Dedicated SQL

  • Aumente o número de shards para melhorar as capacidades de leitura e gravação de dados. Esse método, contudo, aplica-se apenas a dados incrementais. Como shards são recursos de computação, a velocidade de cálculo aumenta conforme a quantidade disponível. Garanta que o número de entradas de dados verificadas por shard não ultrapasse 50 milhões. Divida um shard para aumentar o total disponível. Para mais informações, consulte Split shard. Para detalhes sobre o faturamento de shards, veja Billing examples of active shards based on billing methods.

  • O Dedicated SQL oferece suporte a maior concorrência para análise e verificação de volumes maiores de dados.

Reduzir o intervalo de tempo e o volume de dados

  • Intervalos de tempo longos tornam a consulta mais lenta.

    Diminua o intervalo de tempo da consulta para acelerar o cálculo.

  • Grandes volumes de dados também reduzem o desempenho da consulta.

    Reduza o volume de dados processados na consulta.

Repetir consultas

Se os resultados da consulta forem imprecisos, repita a operação. A cada execução, o mecanismo de aceleração subjacente reanalisa os resultados existentes. Após algumas repetições, o sistema retorna resultados mais precisos.

Otimizar instruções analíticas

Instruções de consulta lentas geralmente apresentam as seguintes características:

  • Uso da cláusula GROUP BY para agrupar resultados com base em uma ou mais colunas do tipo string.

  • Uso da cláusula GROUP BY para agrupar resultados com base em mais de cinco colunas.

  • Inclusão de operações que geram strings na instrução.

Use os métodos abaixo para otimizar instruções analíticas:

  • Evite operações que gerem strings.

    Por exemplo, usar a função date_format para gerar um timestamp em formato específico reduz a eficiência da consulta. Prefira as funções date_trunc ou time_series. Exemplo:

    * | select date_format(from_unixtime(__time__) , '%H_%i') as t, count(1) group by t
  • Não agrupe resultados com base em colunas do tipo string.

    O uso da cláusula GROUP BY com colunas de string eleva a carga de cálculo de hash, que pode representar mais de 50% do esforço total de processamento. Exemplos:

    • Instrução de consulta eficiente

      * | select count(1) as pv , from_unixtime(__time__-__time__%3600) as time group by __time__-__time__%3600
    • Instrução de consulta ineficiente

      * | select count(1) as pv , date_trunc('hour',__time__) as time group by time

    Ambas as instruções calculam o número de logs por hora. Na segunda, os timestamps são convertidos em strings antes do agrupamento (por exemplo, "2021-12-12 00:00:00" como string). Na primeira, obtêm-se os timestamps exatos da hora, agrupa-se com base neles e só então ocorre a conversão para string.

  • Ao agrupar resultados por múltiplas colunas, posicione campos com maior cardinalidade antes daqueles com menor quantidade de valores distintos.

    Por exemplo, se um campo tem 13 valores únicos e o campo uid tem 100 milhões, coloque o campo uid antes do outro na cláusula GROUP BY. Exemplos:

    • Instrução de consulta eficiente

      * | select province,uid,count(1) group by uid,province
    • Instrução de consulta ineficiente

       * | select province,uid,count(1) group by province,uid
  • Prefira funções aproximadas.

    Funções aproximadas oferecem melhor desempenho que as exatas, pois trocam precisão por velocidade. Exemplos:

    • Instrução de consulta eficiente

       * |select approx_distinct(ip)
    • Instrução de consulta ineficiente

       * | select count(distinct(ip))
  • Especifique apenas as colunas necessárias na instrução analítica e evite consultar todas.

    Selecione somente as colunas exigidas para o cálculo. Caso precise de todas, use a sintaxe de busca. Exemplos:

    • Instrução de consulta eficiente

      * |select a,b c 
    • Instrução de consulta ineficiente

      * |select *
  • Inclua colunas não usadas no agrupamento dentro de funções de agregação.

    Por exemplo, quando os valores das colunas userid e username devem corresponder entre si, especifique apenas a coluna userid na cláusula GROUP BY. Exemplos:

    • Instrução de consulta eficiente

       * | select userid, arbitrary(username), count(1) group by userid 
    • Instrução de consulta ineficiente

      * | select userid, username, count(1) group by userid,username
  • Evite a cláusula IN.

    Não use a cláusula IN em instruções analíticas; prefira a cláusula OR na instrução de busca. Exemplos:

    • Instruções de consulta e análise rápidas

      key: a or key: b or key: c | select count(1)
    • Instrução de consulta ineficiente

      * | select count(1) where key in ('a','b')