Todos os produtos
Search
Central de documentação

Simple Log Service:Use o recurso Dedicated SQL com o SDK do Simple Log Service para PHP

Última atualização: Sep 22, 2026

Para começar, execute consultas SQL com o recurso Dedicated SQL por meio do SDK do Simple Log Service para PHP.

Pré-requisitos

  • O Simple Log Service está ativado. Ativar o Simple Log Service.

  • Primeiro, crie e obtenha um par de AccessKey (incluindo o AccessKeyID e o AccessKey secret). Para mais informações, consulte AccessKey pair.

    O par de AccessKey de uma conta Alibaba Cloud tem permissões para todas as operações de API. O uso dessas credenciais para executar operações no Simple Log Service representa um alto risco. Recomendamos usar um usuário do Resource Access Management (RAM) para chamar operações de API e execute tarefas rotineiras de O&M. Para criar um usuário RAM, acesse o console do RAM. Certifique-se de que o usuário RAM tenha permissões de gerenciamento dos recursos do Simple Log Service. Para mais informações, consulte Create a RAM user and grant permissions.

  • Em seguida, instale o SDK do Simple Log Service para PHP. Para mais informações, consulte Install the Log Service PHP SDK.

Informações de contexto

O recurso Dedicated SQL aprimora as capacidades de análise SQL e pode processar centenas de bilhões de registros de dados. Para mais informações, consulte High-performance fully accurate query and analysis (Dedicated SQL).

O Simple Log Service fornece as seguintes operações para o recurso Dedicated SQL. Por favor, selecione a operação desejada:

  • Aliyun_Log_Models_LogStoreSqlRequest: executa consultas do Dedicated SQL em um Logstore especificado. Essa operação suporta a sintaxe padrão SQL-92. A instrução de consulta usa o formato Search statement|Analytic statement, e a instrução analítica segue a sintaxe padrão SQL-92.

  • Aliyun_Log_Models_ProjectSqlRequest: executa consultas do Dedicated SQL em um projeto especificado. Essa operação suporta a sintaxe padrão SQL-92. Por favor, 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 Aliyun_Log_Models_LogStoreSqlRequest e especificar uma instrução de consulta no formato Search statement|Analytic statement para melhorar a eficiência da análise.

Código de exemplo

O código de exemplo a seguir mostra como usar o recurso Dedicated SQL. Para mais informações, consulte SDK do Simple Log Service da Alibaba Cloud para PHP.

<?PHP
require_once realpath(dirname(__FILE__) . './aliyun-log-php-sdk-master/Log_Autoload.php');
class test
{

    public static function main()
    {
        // The Simple Log Service endpoint. In this example, the Simple Log Service endpoint for the China (Hangzhou) region is used. Replace the parameter value with the actual endpoint.
        $endpoint = 'cn-hangzhou.log.aliyuncs.com';
        // In this example, the AccessKey ID and AccessKey secret are obtained from environment variables.
        $accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
        $accessKey = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
        // The name of the project. 
        $project = 'aliyun-test-project';
        // The name of the Logstore. 
        $logstore = 'aliyun-test-logstore';
        // The Security Token Service (STS) token. 
        $token = '';
        // Create a Simple Log Service client. 
        $client = new Aliyun_Log_Client($endpoint, $accessKeyId, $accessKey, $token);

        // Execute an SQL statement in the specified Logstore.  
        $from = time() - 3600;
        $to = time();
        $query = "* | select count(0)";
        $topic = "";
        $request = new Aliyun_Log_Models_LogStoreSqlRequest($project, $logstore, $from, $to, $query, true);
        try {
            $response = $client->executeLogStoreSql($request);
            foreach ($response->getLogs() as $log) {
                print $log->getTime() . "\t";
                foreach ($log->getContents() as $key => $value) {
                    print $key . ":" . $value . "\t";
                }
                print "\n";
            }
            // Display the statistics about the analysis results. 
            // The number of lines of log data that is processed. 
            print "proccesedRows:" . $response->getProcessedRows() . "\n";
            // The time that is required to execute the SQL statement. 
            print "elapsedMilli:" . $response->getElapsedMilli() . "\n";
            // 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 "cpuSec:" . $response->getCpuSec() . "\n";
            // The number of CPU cores that are used to execute the SQL statement after the Dedicated SQL feature is enabled.
            print "cpuCores:" . $response->getCpuCores() . "\n";

        } catch (Aliyun_Log_Exception $ex) {
            logVarDump($ex);
        } catch (Exception $ex) {
            logVarDump($ex);
        }

        // Execute an SQL statement in the specified project. 
        $query = "select count(0) from gs-api where __time__ > to_unixtime(now()) - 300 and __time__ < to_unixtime(now())";
        $request = new Aliyun_Log_Models_ProjectSqlRequest($project, $query, True);
        try {
            $response = $client->executeProjectSql($request);
            #$response = $client->getProjectLogs($request);
            foreach ($response->getLogs() as $log) {
                print $log->getTime() . "\t";
                foreach ($log->getContents() as $key => $value) {
                    print $key . ":" . $value . "\t";
                }
                print "\n";
            }
            // Display the statistics about the analysis results. 
            // The number of lines of log data that is processed.
            print "proccesedRows:" . $response->getProcessedRows() . "\n";
            // The time that is required to execute the SQL statement. 
            print "elapsedMilli:" . $response->getElapsedMilli() . "\n";
            // 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 "cpuSec:" . $response->getCpuSec() . "\n";
            // The number of CPU cores that are used to execute the SQL statement after the Dedicated SQL feature is enabled.
            print "cpuCores:" . $response->getCpuCores() . "\n";
            print "requestId:" . $response->getRequestId() . "\n";

        } catch (Aliyun_Log_Exception $ex) {
            logVarDump($ex);
        } catch (Exception $ex) {
            logVarDump($ex);
        }
    }
}
test::main();    
  • Operação Aliyun_Log_Models_LogStoreSqlRequest

    Chame a operação Aliyun_Log_Models_LogStoreSqlRequest para usar o recurso Dedicated SQL. O formato da solicitação é o seguinte:

    $from = time()-3600;
    $to = time();
    $query = "* | select count(0)";
    $topic = "";
    $request = new Aliyun_Log_Models_LogStoreSqlRequest($project,$logstore,$from,$to,$topic,$query,$powerSql);

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Tipo

    Obrigatório

    Exemplo

    Descrição

    $project

    String

    Sim

    N/D

    O nome do projeto. Especificado durante a criação do cliente do Simple Log Service. Não é necessário que você configure novamente.

    $logstore

    String

    Sim

    N/D

    O nome do Logstore. Especificado durante a criação do cliente do Simple Log Service. Não é necessário que você configure novamente.

    $from

    Long

    Sim

    time()-3600

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

    $to

    Long

    Sim

    time()

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

    $topic

    String

    Não

    topic-test

    O tópico dos logs.

    $query

    String

    Sim

    "* | select count(method)"

    A instrução de consulta. Formato: Search statement|Analytic statement. Para mais informações, consulte Syntax.

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

    $powerSql

    Boolean

    Não

    true

    Especifica se o recurso Dedicated SQL será usado. Para mais informações, consulte High-performance fully accurate query and analysis (Dedicated SQL). Valores válidos:

    • true: usa o recurso Dedicated SQL.

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

  • Operação Aliyun_Log_Models_ProjectSqlRequest

    Chame a operação Aliyun_Log_Models_ProjectSqlRequest para usar o recurso Dedicated SQL. O formato da solicitação é o seguinte:

    $query = "select count(0) from sls_operation_log where __time__ > to_unixtime(now()) - 300 and __time__ < to_unixtime(now())";
    $request = new Aliyun_Log_Models_ProjectSqlRequest($project,$query,$powerSql);   

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Tipo

    Obrigatório

    Exemplo

    Descrição

    $project

    String

    Sim

    N/D

    O nome do projeto. Especificado durante a criação do cliente do Simple Log Service. Não é necessário que você configure novamente.

    $query

    String

    Sim

    " select count(method) from sls_operation_log where __time__ > to_unixtime(now()) - 300 and __time__ < to_unixtime(now())"

    A instrução SQL. Por favor, especifique a condição de filtro e o intervalo de tempo na cláusula WHERE da instrução SQL.

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

    $powerSql

    Boolean

    Não

    true

    Especifica se o recurso Dedicated SQL será usado. Para mais informações, consulte High-performance fully accurate query and analysis (Dedicated SQL). Valores válidos:

    • true: usa o recurso Dedicated SQL.

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