Topik ini menjelaskan cara menggunakan Simple Log Service SDK untuk PHP guna memanfaatkan fitur Dedicated SQL.
Prasyarat
Simple Log Service telah diaktifkan.
Pasangan AccessKey telah dibuat dan diperoleh. Untuk informasi lebih lanjut, lihat Pasangan AccessKey.
Pasangan AccessKey dari akun Alibaba Cloud memiliki izin untuk semua Operasi API. Menggunakan kredensial ini untuk melakukan operasi di Simple Log Service merupakan operasi berisiko tinggi. Kami menyarankan Anda menggunakan Pengguna Resource Access Management (RAM) untuk memanggil Operasi API atau melakukan O&M rutin. Untuk membuat Pengguna RAM, masuk ke Konsol RAM. Pastikan bahwa Pengguna RAM memiliki izin manajemen pada sumber daya Simple Log Service. Untuk informasi lebih lanjut, lihat Langkah 2: Memberikan Izin kepada Pengguna RAM.
Simple Log Service SDK untuk PHP telah diinstal. Untuk informasi lebih lanjut, lihat Instal Simple Log Service SDK untuk PHP.
Informasi latar belakang
Simple Log Service menyediakan fitur Dedicated SQL untuk meningkatkan kemampuan analisis SQL. Anda dapat menggunakan fitur ini untuk memproses ratusan miliar catatan data. Untuk informasi lebih lanjut, lihat Dedicated SQL: Solusi Optimalisasi Kueri Log Tingkat Triliun.
Simple Log Service menyediakan operasi Aliyun_Log_Models_LogStoreSqlRequest dan Aliyun_Log_Models_ProjectSqlRequest. Anda dapat memanggil operasi tersebut untuk menggunakan fitur Dedicated SQL secara efisien.
Aliyun_Log_Models_LogStoreSqlRequest: menggunakan fitur Dedicated SQL dalam Logstore yang ditentukan. Operasi ini mendukung sintaksis standar SQL-92. Pernyataan kueri dalam format
Pernyataan Pencarian|Pernyataan Analitik, dan pernyataan analitik mengikuti sintaksis standar SQL-92.Aliyun_Log_Models_ProjectSqlRequest: menggunakan fitur Dedicated SQL dalam proyek yang ditentukan. Operasi ini mendukung sintaksis standar SQL-92. Anda harus menentukan kondisi filter dan rentang waktu dalam klausa WHERE dari pernyataan SQL.
Jika Anda ingin menyaring data sebelum menganalisisnya, kami sarankan Anda memanggil operasi Aliyun_Log_Models_LogStoreSqlRequest dan menentukan pernyataan kueri dalam format Pernyataan Pencarian|Pernyataan Analitik untuk meningkatkan efisiensi analisis.
Kode contoh
Berikut ini adalah kode contoh yang memberikan ilustrasi tentang cara menggunakan fitur Dedicated SQL. Untuk informasi lebih lanjut, lihat Alibaba Cloud Simple Log Service SDK untuk PHP.
<?PHP
require_once realpath(dirname(__FILE__) . './aliyun-log-php-sdk-master/Log_Autoload.php');
class test
{
public static function main()
{
// Titik akhir Simple Log Service. Dalam contoh ini, titik akhir Simple Log Service untuk wilayah China (Hangzhou) digunakan. Ganti nilai parameter dengan titik akhir yang sebenarnya.
$endpoint = 'cn-hangzhou.log.aliyuncs.com';
// Dalam contoh ini, ID AccessKey dan Rahasia AccessKey diperoleh dari variabel lingkungan.
$accessKeyId = getenv('ALIBABA_CLOUD_ACCESS_KEY_ID');
$accessKey = getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
// Nama proyek.
$project = 'aliyun-test-project';
// Nama Logstore.
$logstore = 'aliyun-test-logstore';
// Token Layanan Keamanan (STS).
$token = '';
// Buat klien Simple Log Service.
$client = new Aliyun_Log_Client($endpoint, $accessKeyId, $accessKey, $token);
// Jalankan pernyataan SQL di Logstore yang ditentukan.
$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";
}
// Tampilkan statistik tentang hasil analisis.
// Jumlah baris data log yang diproses.
print "proccesedRows:" . $response->getProcessedRows() . "\n";
// Waktu yang diperlukan untuk menjalankan pernyataan SQL.
print "elapsedMilli:" . $response->getElapsedMilli() . "\n";
// Waktu CPU yang dikonsumsi untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan. Unit: detik. Anda akan dikenakan biaya untuk fitur Dedicated SQL berdasarkan waktu CPU. Untuk informasi lebih lanjut, lihat topik yang terkait dengan item yang dapat ditagih.
print "cpuSec:" . $response->getCpuSec() . "\n";
// Jumlah inti CPU yang digunakan untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan.
print "cpuCores:" . $response->getCpuCores() . "\n";
} catch (Aliyun_Log_Exception $ex) {
logVarDump($ex);
} catch (Exception $ex) {
logVarDump($ex);
}
// Jalankan pernyataan SQL di proyek yang ditentukan.
$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";
}
// Tampilkan statistik tentang hasil analisis.
// Jumlah baris data log yang diproses.
print "proccesedRows:" . $response->getProcessedRows() . "\n";
// Waktu yang diperlukan untuk menjalankan pernyataan SQL.
print "elapsedMilli:" . $response->getElapsedMilli() . "\n";
// Waktu CPU yang dikonsumsi untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan. Unit: detik. Anda akan dikenakan biaya untuk fitur Dedicated SQL berdasarkan waktu CPU. Untuk informasi lebih lanjut, lihat topik yang terkait dengan item yang dapat ditagih.
print "cpuSec:" . $response->getCpuSec() . "\n";
// Jumlah inti CPU yang digunakan untuk menjalankan pernyataan SQL setelah fitur Dedicated SQL diaktifkan.
print "cpuCores:" . $response->getCpuCores() . "\n";
print "requestId:" . $response->getRequestId() . "\n";
} catch (Aliyun_Log_Exception $ex) {
logVarDump($ex);
} catch (Exception $ex) {
logVarDump($ex);
}
}
}
test::main();
Operasi Aliyun_Log_Models_LogStoreSqlRequest
Anda dapat memanggil operasi Aliyun_Log_Models_LogStoreSqlRequest untuk menggunakan fitur Dedicated SQL. Permintaan harus dalam format berikut:
$from = time()-3600; $to = time(); $query = "* | select count(0)"; $topic = ""; $request = new Aliyun_Log_Models_LogStoreSqlRequest($project,$logstore,$from,$to,$topic,$query,$powerSql);Tabel berikut menjelaskan parameter.
Parameter
Tipe
Diperlukan
Contoh
Deskripsi
$project
String
Ya
N/A
Nama proyek.
Saat Anda membuat klien Simple Log Service, Anda harus menentukan nilai untuk parameter $project. Oleh karena itu, Anda tidak perlu mengonfigurasi parameter ini lagi.
$logstore
String
Ya
N/A
Nama Logstore.
Saat Anda membuat klien Simple Log Service, Anda harus menentukan nilai untuk parameter $logstore. Oleh karena itu, Anda tidak perlu mengonfigurasi parameter ini lagi.
$from
Long
Ya
time()-3600
Awal rentang waktu untuk kueri. Nilainya adalah timestamp UNIX yang mewakili jumlah detik yang telah berlalu sejak 1 Januari 1970, 00:00:00 UTC.
$to
Long
Ya
time()
Akhir rentang waktu untuk kueri. Nilainya adalah timestamp UNIX yang mewakili jumlah detik yang telah berlalu sejak 1 Januari 1970, 00:00:00 UTC.
$topic
String
Tidak
topic-test
Topik log.
$query
String
Ya
"* | select count(method)"Pernyataan kueri. Format:
Pernyataan Pencarian|Pernyataan Analitik. Untuk informasi lebih lanjut, lihat Sintaksis.Secara default, Simple Log Service mengembalikan 100 baris data. Anda dapat menggunakan klausa LIMIT untuk menentukan jumlah baris data yang akan dikembalikan. Untuk informasi lebih lanjut, lihat Klausa LIMIT.
$powerSql
Boolean
Tidak
true
Menentukan apakah akan menggunakan fitur Dedicated SQL. Untuk informasi lebih lanjut, lihat Dedicated SQL: Solusi optimalisasi kueri log tingkat triliun. Nilai valid:
true: menggunakan fitur Dedicated SQL.
false (default): menggunakan fitur Standard SQL.
Operasi Aliyun_Log_Models_ProjectSqlRequest
Anda dapat memanggil operasi Aliyun_Log_Models_ProjectSqlRequest untuk menggunakan fitur Dedicated SQL. Permintaan harus dalam format berikut:
$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);Tabel berikut menjelaskan parameter.
Parameter
Tipe
Diperlukan
Contoh
Deskripsi
$project
String
Ya
N/A
Nama proyek.
Saat Anda membuat klien Simple Log Service, Anda harus menentukan nilai untuk parameter $project. Oleh karena itu, Anda tidak perlu mengonfigurasi parameter ini lagi.
$query
String
Ya
" select count(method) from sls_operation_log where __time__ > to_unixtime(now()) - 300 and __time__ < to_unixtime(now())"Pernyataan SQL. Anda harus menentukan kondisi pencarian dan rentang waktu dalam klausa WHERE dari pernyataan SQL.
Secara default, Simple Log Service mengembalikan 100 baris data. Anda dapat menggunakan klausa LIMIT untuk menentukan jumlah baris data yang akan dikembalikan. Untuk informasi lebih lanjut, lihat Klausa LIMIT.
$powerSql
Boolean
Tidak
true
Menentukan apakah akan menggunakan fitur Dedicated SQL. Untuk informasi lebih lanjut, lihat Dedicated SQL: Solusi optimalisasi kueri log tingkat triliun. Nilai valid:
true: menggunakan fitur Dedicated SQL.
false (default): menggunakan fitur Standard SQL.