Todos os produtos
Search
Central de documentação

Simple Log Service:SQL Enhancement

Última atualização: Jul 03, 2026

O SQL Enhancement dimensiona automaticamente os recursos de armazenamento e computação para acelerar consultas e análises no Simple Log Service.

Como funciona

Contexto

O Simple Log Service desacopla o armazenamento da computação: a camada de armazenamento baseada em shard gerencia os dados, enquanto a camada de computação utiliza SQL para consultas e análises.

Para melhorar o desempenho da análise, otimize ambas as camadas. As seções a seguir comparam as soluções mais comuns.

image

Solução 1: Dividir um shard

Divida manualmente um shard para expandir a capacidade de armazenamento e aumentar o throughput de computação.

Limitações:

  • Este método aplica-se apenas a dados gravados recentemente.

  • Shards ativos geram custos. Consulte Faturamento.

  • Uma única consulta tem limites de concorrência e volume de dados.

  • Divida ou mescle shards manualmente.

Solução 2: Consultas do tipo dividir para conquistar

Divida uma consulta grande em várias subconsultas e agregue os resultados.

Limitações:

  • Exige manutenção de lógica de agregação secundária e armazenamento intermediário. Utilize o Scheduled SQL para essa finalidade.

  • Alterar dimensões de análise requer reconstruir a lógica de agregação.

  • Gargalos de computação ainda podem ocorrer com volumes de dados muito grandes.

Solução 3: Usar o SQL Enhancement

O SQL Enhancement dimensiona automaticamente os recursos de armazenamento e computação com base no volume de dados para acelerar a análise.

image

Comparação

Solução 1: Dividir um shard

Solução 2: Consultas do tipo dividir para conquistar

Solução 3: Usar o SQL Enhancement

Isolamento de recursos

Recursos de armazenamento independentes, recursos de computação compartilhados

Recursos de armazenamento independentes, recursos de computação compartilhados

Recursos de armazenamento independentes e recursos de computação dedicados elásticos

Granularidade de dimensionamento

Dimensionamento da camada de armazenamento

Dimensionamento da camada de computação

Dimensionamento elástico para as camadas de armazenamento e computação

Sobrecarga de manutenção

Requer intervenção manual.

Exige divisão de consultas grandes em subconsultas.

Agendamento totalmente automatizado.

Complexidade da consulta

Suporta SQL nativo.

Requer desenvolvimento personalizado.

Suporta SQL nativo.

Pré-requisitos

Procedimento

Ative o SQL Enhancement de uma das seguintes formas:

  • Ativar para uma única consulta: aplica-se apenas à consulta atual no Logstore.

  • Ativar por padrão: aplica-se a todas as consultas no Project, incluindo alertas e painéis.

Console

Ativar para uma única consulta

  1. Faça login no console do Simple Log Service.

  2. Na seção Projects, clique em no projeto desejado.

    image

  3. Na aba Log Storage > Logstores, clique em no logstore desejado.

    image

  4. Clique em image > SQL Enhancement.

Ativar por padrão

  1. Faça login no console do Simple Log Service.

  2. Na seção Projects, clique em no projeto desejado.

    image

  3. Clique em no ícone Project Overview.

    Clique em no ícone Home na barra de navegação superior para retornar à lista de Projects ou alternar entre projetos.

  4. Passe o mouse sobre CUs of SQL-dedicated Instance e clique em Settings.

  5. No painel Modify CUs of SQL-dedicated Instance, ative a chave Enable by Default e clique em OK.

API

Ativar para uma única consulta

  • GetLogs (retorna resultados não compactados) - Consultar logs em um Logstore

    Configure um dos parâmetros a seguir.

    • Parâmetro powerSql: defina como true para SQL Enhancement ou false (padrão) para SQL Standard.

    • Parâmetro query: adicione set session parallel_sql=true; antes da instrução SQL. Por exemplo, * | select count(*) as pv torna-se * | set session parallel_sql=true; select count(*) as pv.

  • GetLogsV2 (retorna resultados compactados) - Consultar dados de log em um Logstore

    Configure um dos parâmetros a seguir.

    • Parâmetro powerSql: defina como true para SQL Enhancement ou false (padrão) para SQL Standard.

    • Parâmetro query: adicione set session parallel_sql=true; antes da instrução SQL. Por exemplo, * | select count(*) as pv torna-se * | set session parallel_sql=true; select count(*) as pv.

Ativar por padrão

Na operação Criar uma instância de Dedicated SQL, defina useAsDefault=true para ativar o SQL Enhancement por padrão no Project.

SDK

Os exemplos a seguir utilizam o SDK para Java.

Pré-requisitos

Instalar o SDK para Java

Ativar para uma única consulta

  • Método GetLogs()

    Configure um dos parâmetros a seguir.

    • Parâmetro powerSql: defina como true para SQL Enhancement ou false (padrão) para SQL Standard.

    • Parâmetro query: adicione set session parallel_sql=true; antes da instrução SQL. Por exemplo, * | select count(*) as pv torna-se * | set session parallel_sql=true; select count(*) as pv.

    import com.aliyun.openservices.log.Client;
    import com.aliyun.openservices.log.exception.LogException;
    import com.aliyun.openservices.log.response.GetLogsResponse;
    import java.util.Date;
    public class CreateSqlInstance {
        public static void main(String[] args) throws LogException {
            // This example shows how to obtain an AccessKey ID and an AccessKey secret from environment variables.
            String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
            String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
            // The endpoint for Simple Log Service. This example uses the endpoint for the China (Hangzhou) region. Replace it with the actual endpoint.
            String host = "https://cn-hangzhou.log.aliyuncs.com";
            // Create a Simple Log Service client.
            Client client = new Client(host, accessId, accessKey);
            // The Project name.
            String projectName = "aliyun-project-test";
            // The Logstore name.
            String logstore = "request_log";
            // Specifies whether to enable SQL Enhancement by default. Default value: false.
            boolean useAsDefault = true;
            // The SQL query statement.
            String query = "* | select count(1)";
            // The maximum number of logs to return. This parameter is valid only when the query parameter is a search statement. Value range: 0 to 100. Default value: 100.
            int line = 3;
            // The line number from which to start the query. This parameter is valid only when the query parameter is a search statement. Default value: 0.
            int offset = 0;
            // Specifies whether to return logs in reverse chronological order of log timestamps, accurate to the minute.
            // true: Returns logs in reverse chronological order.
            // false (default): Returns logs in chronological order.
            boolean reverse = false;
            // Specifies whether to use SQL Enhancement.
            // true: Use SQL Enhancement.
            // false (default): Use Standard SQL.
            boolean powerSql = true;
            int from = (int) (new Date().getTime() / 1000 - 600);
            int to = (int) (new Date().getTime() / 1000);
            GetLogsResponse getLogsResponse = client.GetLogs(projectName, logstore, from, to, "", query, line, offset, reverse, powerSql);
            System.out.println(getLogsResponse.getCpuSec());
        }
    }

Ativar por padrão

Defina boolean useAsDefault = true para ativar o SQL Enhancement por padrão no Project.

import com.aliyun.openservices.log.Client;
import com.aliyun.openservices.log.exception.LogException;
import com.aliyun.openservices.log.request.CreateOrUpdateSqlInstanceRequest;
public class CreateSqlInstance {
    public static void main(String[] args) throws LogException {
        // This example shows how to obtain an AccessKey ID and an AccessKey secret from environment variables.
        String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        // The Project name.
        String projectName = "aliyun-test-project";
        // The endpoint for Simple Log Service. This example uses the endpoint for the China (Hangzhou) region. Replace it with the actual endpoint.
        String host = "https://cn-hangzhou.log.aliyuncs.com";
        // Create a Simple Log Service client.
        Client client = new Client(host, accessId, accessKey);
        int cu = 100;
        boolean useAsDefault = true;
        client.createSqlInstance(new CreateOrUpdateSqlInstanceRequest(projectName, cu, useAsDefault));
    }
}

Perguntas frequentes

  • Como verificar o tempo de CPU?

    Após executar uma consulta, passe o mouse sobre Analysis Results para visualizar o tempo de CPU. O campo Consumed CPU Time, no painel de estatísticas superior direito, exibe o tempo de CPU consumido em segundos.

  • Custo de uma consulta Dedicated SQL

    O custo varia conforme o volume de dados e a complexidade da consulta. A tabela a seguir apresenta alguns exemplos.

    Instrução de consulta

    Volume de dados (linhas)

    Custo por execução (USD)

    * | select avg(double_0) from stress_s1_mil1

    4 bilhões

    0.004435

    * | select avg(double_0), sum(double_0), max(double_0), min(double_0), count(double_0) from stress_s1_mil1

    4 bilhões

    0.006504

    * | select avg(double_0), sum(double_1), max(double_2), min(double_3), count(double_4) from stress_s1_mil1

    4 bilhões

    0.013600

    * | select key_0 , avg(double_0) as pv from stress_s1_mil1 group by key_0 order by pv desc limit 1000

    4 bilhões

    0.011826

    * | select long_0, avg(double_0) as pv from stress_s1_mil1 group by long_0 order by pv desc limit 1000

    4 bilhões

    0.011087

    * | select long_0, long_1, avg(double_0) as pv from stress_s1_mil1 group by long_0,long_1 order by pv desc limit 1000

    300 milhões

    0.010791

    * | select avg(double_0) from stress_s1_mil1 where key_0='key_987'

    4 bilhões

    0.00007