Todos os produtos
Search
Central de documentação

Simple Log Service:Usar o SDK do Simple Log Service para Python com o recurso Dedicated SQL

Última atualização: Jul 03, 2026

Use o SDK do Simple Log Service para Python para executar consultas SQL com o recurso Dedicated SQL na análise de logs em grande escala.

Pré-requisitos

  • O Simple Log Service está ativado.

  • O SDK do Simple Log Service para Python está inicializado.

Informações básicas

O Simple Log Service oferece o recurso Dedicated SQL para aprimorar a análise SQL e processar centenas de bilhões de registros de dados. Para mais informações, consulte Consulta e análise de alta precisão e alto desempenho (Dedicated SQL).

O Simple Log Service disponibiliza as operações execute_logstore_sql e execute_project_sql para usar o recurso Dedicated SQL.

  • execute_logstore_sql: executa o recurso Dedicated SQL em um Logstore específico. Esta operação suporta a sintaxe SQL-92. A instrução de consulta segue o formato Search statement|Analytic statement, e a instrução analítica obedece à sintaxe padrão SQL-92.

  • execute_project_sql: executa o recurso Dedicated SQL em um projeto específico. Esta operação também suporta a sintaxe SQL-92. Especifique uma condição de filtro e um intervalo de tempo na cláusula WHERE da instrução SQL.

Nota

Para filtrar dados antes da análise, recomendamos chamar a operação execute_logstore_sql e especificar uma instrução de consulta no formato Search statement|Analytic statement para obter maior eficiência.

Código de exemplo para usar o recurso Dedicated SQL

Descrição da operação

  • Operação execute_logstore_sql

    Chame a operação execute_logstore_sql para usar o recurso Dedicated SQL. Crie uma solicitação no formato res = client.execute_logstore_sql(project, logstoreName, from, to, query, powerSql). A tabela a seguir descreve os parâmetros da solicitação.

    Parâmetro

    Tipo

    Obrigatório

    Exemplo

    Descrição

    project_name

    String

    Sim

    N/A

    Nome do projeto.

    Este valor é definido ao criar o cliente do Simple Log Service. Não é necessário configurá-lo novamente.

    logstore_name

    String

    Sim

    N/A

    Nome do Logstore.

    Este valor é definido ao criar o cliente do Simple Log Service. Não é necessário configurá-lo novamente.

    from

    Long

    Sim

    int(time.time() - 60)

    Início do intervalo de tempo da consulta. O valor é um timestamp UNIX que representa o número de segundos decorridos desde a época (1º de janeiro de 1970, 00:00:00 UTC).

    to

    Long

    Sim

    int(time.time())

    Fim do intervalo de tempo da consulta. O valor é um timestamp UNIX que representa o número de segundos decorridos desde a época (1º de janeiro de 1970, 00:00:00 UTC).

    query

    String

    Sim

    "* | select count(1) as cnt"

    Instrução de consulta. Formato: Search statement|Analytic statement. Para mais informações, consulte Sintaxe.

    Por padrão, o Simple Log Service retorna 100 linhas de dados. Use uma cláusula LIMIT para especificar a quantidade de linhas a retornar. Para mais informações, consulte Cláusula LIMIT.

    powerSql

    Boolean

    Não

    True

    Define se o recurso Dedicated SQL será usado. Para mais informações, consulte Consulta e análise de alta precisão e alto desempenho (Dedicated SQL).

    • True: usa o recurso Dedicated SQL.

    • False (padrão): usa o recurso Standard SQL.

  • Operação execute_project_sql

    Chame a operação execute_project_sql para usar o recurso Dedicated SQL. Crie uma solicitação no formato res = client.execute_project_sql(project, query, powerSql). A tabela a seguir descreve os parâmetros da solicitação.

    Parâmetro

    Tipo

    Obrigatório

    Exemplo

    Descrição

    project_name

    String

    Sim

    aliyun-test-project

    Nome do projeto.

    Este valor é definido ao criar o cliente do Simple Log Service. Não é necessário configurá-lo novamente.

    query

    String

    Sim

    "select count(1) as cnt from %s where __time__ > %s" % (logstore_name, int(time.time() - 60))

    Instrução SQL. Especifique a condição de busca na cláusula WHERE da instrução SQL.

    Por padrão, o Simple Log Service retorna 100 linhas de dados. Use uma cláusula LIMIT para especificar a quantidade de linhas a retornar. Para mais informações, consulte Cláusula LIMIT.

    powerSql

    Boolean

    Não

    True

    Define se o recurso Dedicated SQL será usado. Para mais informações, consulte Consulta e análise de alta precisão e alto desempenho (Dedicated SQL).

    • True: usa o recurso Dedicated SQL.

    • False (padrão): usa o recurso Standard SQL.

Código de exemplo

O código de exemplo a seguir mostra como usar o recurso Dedicated SQL. Para mais informações, consulte aliyun-log-python-sdk.

# encoding: utf-8
from __future__ import print_function

import time
import os
from aliyun.log import *

def main():
    # Specify a Simple Log Service endpoint. 
    endpoint = 'ap-southeast-1.log.aliyuncs.com'
    # Configure environment variables. In this example, the AccessKey ID and AccessKey secret are obtained from environment variables. 
    access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    access_key = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # The name of the project. 
    project_name = 'aliyun-test-project'
    # The name of the logstore. 
    logstore_name = 'aliyun-test-logstore'

    # Create a Simple Log Service client. 
    client = LogClient(endpoint, access_key_id, access_key)

    # Execute an SQL statement in the specified logstore. 
    print("===sample_execute_logstore_sql===")
    res = client.execute_logstore_sql(project_name, logstore_name,
                                      int(time.time() - 60),int(time.time()),
                                      "* | select count(1) as cnt",True)
    # Display the statistics about the analysis results. 
    res.log_print()
    # The number of rows of log data that is processed. 
    print("processed_rows: %s" % res.get_processed_rows())
    # The time that is consumed to execute the SQL statement. 
    print("elapsed_mills: %s" % res.get_elapsed_mills())
    # Display whether an SQL statement is used. 
    print("has_sql: %s" % res.get_has_sql())
    # The WHERE clause that precedes the vertical bar (|). 
    print("where_query: %s" % res.get_where_query())
    # The SELECT statement that follows the vertical bar (|). The SELECT statement contains an aggregate function. 
    print("agg_query: %s" % res.get_agg_query())
    # The CPU time that is consumed to execute the SQL statement after the Dedicated SQL feature is enabled. Unit: seconds. You are charged for the Dedicated SQL feature based on the CPU time. For more information, see the topics that are related to billable items. 
    print("cpu_sec: %s" % res.get_cpu_sec())
    # The number of CPU cores that are used to execute the SQL statement after the Dedicated SQL feature is enabled. 
    print("cpu_cores: %s" % res.get_cpu_cores())

    # Execute an SQL statement in the specified project. 
    print("===sample_execute_project_sql===")
    res = client.execute_project_sql(project_name,"select count(1) as cnt from %s where __time__ > %s"
                                     % (logstore_name, int(time.time() - 60)),True)
    # Display the statistics about the analysis results. 
    res.log_print()
    # The number of rows of log data that is processed. 
    print("processed_rows: %s" % res.get_processed_rows())
    # The time that is consumed to execute the SQL statement. 
    print("elapsed_mills: %s" % res.get_elapsed_mills())
    # Display whether an SQL statement is used. 
    print("has_sql: %s" % res.get_has_sql())
    # The WHERE clause that precedes the vertical bar (|). 
    print("where_query: %s" % res.get_where_query())
    # The SELECT statement that follows the vertical bar (|). The SELECT statement contains an aggregate function. 
    print("agg_query: %s" % res.get_agg_query())
    # The CPU time that is consumed to execute the SQL statement after the Dedicated SQL feature is enabled. Unit: seconds. You are charged for the Dedicated SQL feature based on the CPU time. For more information, see the topics that are related to billable items. 
    print("cpu_sec: %s" % res.get_cpu_sec())
    # The number of CPU cores that are used to execute the SQL statement after the Dedicated SQL feature is enabled. 
    print("cpu_cores: %s" % res.get_cpu_cores())

if __name__ == '__main__':
    main()

Código de exemplo para criar, modificar e consultar uma instância SQL

Após ativar o recurso Dedicated SQL, crie uma instância SQL para especificar o número de CUs. Ajuste a quantidade de CUs para controlar custos. Para mais informações, consulte Consulta e análise de alta precisão e alto desempenho (Dedicated SQL).

O código de exemplo a seguir mostra como criar, modificar e consultar uma instância SQL. Para mais informações, consulte aliyun-log-python-sdk.

# encoding: utf-8
from __future__ import print_function

import time
import os
from aliyun.log import *

def main():
    # The Simple Log Service endpoint. For more information, see Endpoints. In this example, the Simple Log Service endpoint for the China (Hangzhou) region is used. Replace the parameter value with the actual endpoint. 
    endpoint = 'ap-southeast-1.log.aliyuncs.com'
    # Configure environment variables. In this example, the AccessKey ID and AccessKey secret are obtained from environment variables. 
    access_key_id = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
    access_key = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
    # The name of the project. 
    project_name = 'aliyun-test-project'
    # The name of the logstore. 
    logstore_name = 'aliyun-test-logstore'

    # Create a Simple Log Service client. 
    client = LogClient(endpoint, access_key_id, access_key)

    # Create an SQL instance. You can specify the number of CUs for the SQL instance. Valid values: 0 to 1000. 
    print("===sample_create_sql_instance===")
    res = client.create_sql_instance(project_name, 500)
    res.log_print()

    # Modify the configurations of the SQL instance. You can change the number of CUs for the SQL instance. Valid values: 0 to 1000. 
    print("===sample_update_sql_instance===")
    res = client.update_sql_instance(project_name, 800)
    res.log_print()

    # Query the configurations of the SQL instance. 
    print("===sample_list_sql_instance===")
    res = client.list_sql_instance(project_name)
    res.log_print()

if __name__ == '__main__':
    main()