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.
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.
-