Todos los productos
Search
Centro de documentos

Simple Log Service:Modo SQL completamente preciso

Última actualización: Sep 12, 2026

El modo completamente preciso garantiza resultados de consulta exactos y completos. Para lograrlo, permite que las consultas se ejecuten durante más tiempo en lugar de truncarse cuando se alcanzan los límites de recursos.

Límites

El modo completamente preciso no es compatible con las siguientes funciones:

Funcionamiento

El modo completamente preciso convierte diversas restricciones de recursos, como las de E/S y CPU, en un único límite basado en el tiempo. Si una consulta alcanza un límite de recursos, el sistema la regula a una velocidad sostenible en lugar de finalizarla. De esta forma, la consulta se ejecuta hasta completarse o hasta que se alcance el tiempo de espera. Este modo utiliza la asignación de tareas en pools de recursos aislados, la priorización de colas por usuario y el balanceo de carga para programar los recursos de manera eficiente.

image

Las consultas estándar se ejecutan en un pool de cómputo estándar y se truncan de inmediato al alcanzar un límite de recursos, lo cual puede generar resultados inexactos. Cuando se habilita el modo completamente preciso, las consultas se ejecutan en un pool de cómputo dedicado. En este caso, el sistema mantiene la tarea en ejecución a una velocidad sostenible hasta que se cargan todos los datos y finaliza el cálculo.

image

Requisitos previos

  • Se creó un logstore de tipo Standard. Para obtener más información, consulte Create a basic LogStore.

  • Se recopilaron los registros. Para obtener más información, consulte Data collection.

  • Se configuraron los índices. Para obtener más información, consulte Configure indexes.

Procedimiento

Puede habilitar el modo completamente preciso para operaciones individuales de consulta y análisis dentro de un logstore específico.

Nota

Configure el tiempo de espera máximo del modo completamente preciso mediante la consola, la API o el SDK. El tiempo de espera máximo para una instrucción analítica es de 55 segundos.

Console

  1. Inicie sesión en la consola de Simple Log Service.

  2. En la sección Projects, haga clic en el proyecto deseado.

    image

  3. En la pestaña Log Storage > Logstores, haga clic en el logstore deseado.

    image

  4. Haga clic en image > Completely Accurate.

    Importante

    Ajuste el tiempo de espera si establece el parámetro query_max_run_time.

    Por ejemplo, si su instrucción analítica es * | select count(*) as pv, agregue set session query_max_run_time=10s; a la instrucción. La instrucción analítica completa queda así: * | set session query_max_run_time=10s; select count(*) as pv .

    image

API

  • GetLogs (returns uncompressed results) - Queries log data in a Logstore

    • Parámetro: query

      Por ejemplo, suponga que la instrucción analítica es * | select count(*) as pv.

      • Para habilitar el modo completamente preciso, anteponga set session allow_incomplete=false; a su instrucción analítica. Por ejemplo, * | select count(*) as pv se convierte en * | set session allow_incomplete=false; select count(*) as pv .

      • Para establecer el tiempo de espera del análisis de consultas, agregue set session query_max_run_time=10s; a la instrucción de análisis. Esto define el tiempo máximo de ejecución en 10s. La instrucción de análisis queda así: * | set session allow_incomplete=false; select count(*) as pv .

      • Si desea habilitar el modo completamente preciso y establecer un tiempo de espera, anteponga los comandos de sesión a su instrucción analítica. Por ejemplo: * | set session allow_incomplete=false; set session query_max_run_time=10s;select count(*) as pv .

  • GetLogsV2 (returns compressed results) - Queries log data in a Logstore

    • Parámetro: query

      Por ejemplo, suponga que la instrucción analítica es * | select count(*) as pv.

      • Para habilitar el modo completamente preciso, anteponga set session allow_incomplete=false; a su instrucción analítica. Por ejemplo, * | select count(*) as pv se convierte en * | set session allow_incomplete=false; select count(*) as pv .

      • Para establecer el tiempo de espera del análisis de consultas, agregue set session query_max_run_time=10s; a la instrucción de análisis. Esto define el tiempo máximo de ejecución en 10s. La instrucción de análisis queda así: * | set session allow_incomplete=false; select count(*) as pv .

      • Si desea habilitar el modo completamente preciso y establecer un tiempo de espera, anteponga los comandos de sesión a su instrucción analítica. Por ejemplo: * | set session allow_incomplete=false; set session query_max_run_time=10s;select count(*) as pv .

SDK

En esta sección se usa el SDK de Simple Log Service para Java como ejemplo.

Requisitos previos

Instale el SDK de Simple Log Service para Java. Para obtener más información, consulte Install the Simple Log Service SDK for Java.

  • Método GetLogs()

    • Parámetro: query

      Por ejemplo, suponga que la instrucción analítica es * | select count(*) as pv.

      • Para habilitar el modo completamente preciso, anteponga set session allow_incomplete=false; a su instrucción analítica. Por ejemplo, * | select count(*) as pv se convierte en * | set session allow_incomplete=false; select count(*) as pv .

      • Para establecer el tiempo de espera del análisis de consultas, agregue set session query_max_run_time=10s; a la instrucción de análisis. Esto define el tiempo máximo de ejecución en 10s. La instrucción de análisis queda así: * | set session allow_incomplete=false; select count(*) as pv .

      • Si desea habilitar el modo completamente preciso y establecer un tiempo de espera, anteponga los comandos de sesión a su instrucción analítica. Por ejemplo: * | set session allow_incomplete=false; set session query_max_run_time=10s;select count(*) as pv .

    • Parámetro: session

      • Para habilitar el modo completamente preciso, use request.SetSession("allow_incomplete=false");.

      • Para establecer el tiempo de espera de la consulta, use request.SetSession("query_max_run_time=10s"); .

      • Para habilitar el modo completamente preciso y establecer un tiempo de espera, use request.SetSession("allow_incomplete=false;query_max_run_time=10s").

    import com.aliyun.openservices.log.Client;
    import com.aliyun.openservices.log.exception.LogException;
    import com.aliyun.openservices.log.request.GetLogsRequest;
    import com.aliyun.openservices.log.response.GetLogsResponse;
    
    public class CrearteLogStore {
        public static void main(String[] args) throws LogException {
            // This example obtains the AccessKey ID and AccessKey Secret from environment variables.
            String accessId = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
            String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
            // Set the endpoint for Simple Log Service. This example uses the endpoint for the China (Beijing) region. Replace it with your actual endpoint.
            String host = "https://cn-beijing.log.aliyuncs.com";
            // Create a Simple Log Service client.
            Client client = new Client(host, accessId, accessKey);
            // Specify the Project name.
            String projectName = "aliyun-test-project";
            // Specify the Logstore name.
            String logstore = "request_log";
            String query = "* | SELECT count(0)";
            int from = (int)(System.currentTimeMillis()/1000) - 60;
            int to = (int)(System.currentTimeMillis()/1000);
            GetLogsRequest request = new GetLogsRequest(projectName, logstore, from, to, "", query);
            request.SetSession("allow_incomplete=false;query_max_run_time=10s");
            GetLogsResponse response = client.GetLogs(request);
            System.out.println(response.getCpuSec());
        }
    }

Preguntas frecuentes

  • ¿Cómo compruebo el tiempo de CPU?

    Después de ejecutar una consulta, coloque el cursor sobre Analysis Results para consultar el tiempo de CPU. El campo Consumed CPU Time, ubicado en el panel de estadísticas superior derecho, muestra el tiempo de CPU en segundos.

  • Costo de una consulta de Dedicated SQL

    El costo varía según el volumen de datos y la complejidad de la consulta.

    Instrucción de consulta

    Volumen de datos (filas)

    Costo por ejecución (USD)

    * | select avg(double_0) from stress_s1_mil1

    4 mil millones

    0.004435

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

    4 mil millones

    0.006504

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

    4 mil millones

    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 mil millones

    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 mil millones

    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 millones

    0.010791

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

    4 mil millones

    0.00007