Anda dapat menggunakan pernyataan SQL dalam kueri peristiwa lanjutan untuk menanyakan atau menganalisis peristiwa yang dikirimkan ke Simple Log Service dengan menggunakan jejak.
Jika Anda ingin menggunakan string dalam pernyataan analitik, Anda harus mengapit string tersebut dengan tanda kutip tunggal (''). String yang tidak diapit atau string yang diapit dengan tanda kutip ganda ("") menunjukkan nama bidang atau nama kolom. Sebagai contoh, 'status' menunjukkan string status, sedangkan status atau "status" menunjukkan bidang log status.
Contoh
Kueri Teks Penuh
Tentukan kata kunci seperti nama bidang atau nilai bidang.
Contoh: Kueri peristiwa yang mengandung kata kunci
DescribeInstances.DescribeInstancesPencocokan Tepat Berdasarkan Atribut
Tentukan properti peristiwa dalam format
[Nama Properti Peristiwa]:[Nilai Properti Peristiwa]. Anda harus menentukan nama dan nilai yang tepat. Untuk informasi lebih lanjut tentang properti peristiwa, lihat Properti Peristiwa dalam topik ini.Contoh: Kueri peristiwa di mana nilai dari
event.eventSourceadalahactiontrail.cn-hangzhou.aliyuncs.com.event.eventSource: actiontrail.cn-hangzhou.aliyuncs.comPencocokan Kabur Berdasarkan Atribut
Tentukan properti peristiwa dalam format
[Nama Properti Peristiwa]:[Nilai Properti Peristiwa]. Anda harus menentukan nama yang tepat. Untuk nilainya, Anda dapat menambahkan tanda bintang (*) untuk mencocokkan beberapa karakter atau tanda tanya (?) untuk mencocokkan satu karakter.Contoh 1: Kueri semua peristiwa akses berbasis pasangan AccessKey.
event.userIdentity.accessKeyId: *Contoh 2: Kueri peristiwa di mana nilai dari
event.eventSourcedimulai denganactiontrail.event.eventSource: actiontrail*
Kueri Multi-Kondisi
Gunakan tanda kurung
()dan operator logikaANDatauORuntuk melakukan kueri multi-kondisi.Contoh 1: Kueri semua peristiwa pada kegagalan akses berbasis pasangan AccessKey.
event.errorCode: * AND event.userIdentity.accessKeyId: *Contoh 2: Kueri peristiwa di mana nilai dari
event.eventNameadalahCreate,CreateInstance, atauRunInstances.event.eventName: Create OR event.eventName: CreateInstance OR event.eventName: RunInstancesContoh 3: Kueri peristiwa di mana nilai dari
event.serviceNameadalahkafkadan nilai eventName adalahCreate,CreateInstance, atauRunInstances.(event.serviceName: AliKafka AND ( event.eventName: Create OR event.eventName: CreateInstance OR event.eventName: RunInstances )
Kueri Agregat
Anda dapat menggunakan sintaksis kueri agregat dari Simple Log Service untuk menghasilkan statistik agregat pada peristiwa. Sebagai contoh, Anda dapat menggunakan klausa
GROUP BYuntuk menghasilkan statistik agregat pada bidang tertentu.Contoh 1: Kueri jumlah peristiwa yang di-aggregat berdasarkan layanan cloud.
* | SELECT "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY "event.serviceName"Contoh 2: Kueri jumlah peristiwa yang di-aggregat berdasarkan pengguna dan layanan cloud.
* | SELECT "event.userIdentity.principalId" AS principalId, "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY principalId,service
Properti peristiwa
Tabel berikut menjelaskan atribut peristiwa yang didukung oleh ActionTrail.
Kategori | Nama properti peristiwa | Deskripsi |
Operator |
| ID akun Alibaba Cloud. |
| ID kunci. | |
| ID peminta. | |
| Jenis akun. | |
| Nama pengguna. | |
Aksi |
| Nama layanan. |
| Jenis baca/tulis. | |
| Nama peristiwa. | |
| Informasi versi. | |
| Pesan kesalahan. | |
| Kode kesalahan. | |
Sumber daya terkait |
| Jenis sumber daya. |
| Nama sumber daya. | |
Lokasi |
| Wilayah. |
| Sumber peristiwa. | |
| Alamat IP sumber. | |
Lainnya |
| ID permintaan. |
| ID peristiwa. |
Fungsi agregat
Tabel berikut menjelaskan fungsi agregat yang didukung oleh ActionTrail.
Fungsi | Sintaksis | Deskripsi | Didukung dalam SQL | Didukung dalam SPL |
arbitrary(x) | Mengembalikan nilai acak, bukan null dari bidang x. | √ | × | |
avg(x) | Menghitung rata-rata dari nilai-nilai bidang x. | √ | × | |
bitwise_and_agg(x) | Mengembalikan hasil operasi bitwise AND pada nilai-nilai bidang x. | √ | × | |
bitwise_or_agg(x) | Mengembalikan hasil operasi bitwise OR pada nilai-nilai bidang x. | √ | × | |
bool_and(ekspresi boolean) | Memeriksa apakah semua log memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true. Fungsi ini setara dengan fungsi every. | √ | × | |
bool_or(ekspresi boolean) | Memeriksa apakah ada log yang memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true. | √ | × | |
checksum(x) | Menghitung checksum dari nilai-nilai bidang x. | √ | × | |
count(*) | Menghitung jumlah log. | √ | × | |
count(1) | Menghitung jumlah log. Fungsi ini setara dengan fungsi count(*). | √ | × | |
count(x) | Menghitung jumlah log yang nilainya pada bidang x bukan NULL. | √ | × | |
count_if(ekspresi boolean) | Menghitung jumlah log yang memenuhi kondisi tertentu. | √ | × | |
every(ekspresi boolean) | Memeriksa apakah semua log memenuhi kondisi tertentu. Jika ya, fungsi mengembalikan true. Fungsi ini setara dengan fungsi bool_and. | √ | × | |
geometric_mean(x) | Menghitung rata-rata geometrik dari nilai-nilai bidang x. | √ | × | |
kurtosis(x) | Menghitung kurtosis dari nilai-nilai bidang x. | √ | × | |
map_union(x) | Mengembalikan hasil operasi union pada peta yang ditentukan. Jika sebuah kunci ada di beberapa peta input, fungsi secara acak mengembalikan salah satu nilai dari kunci tersebut. | √ | × | |
max(x) | Mengkuerinilai terbesar dari bidang x. | √ | × | |
max(x, n) | Mengkueri n nilai terbesar dari bidang x. Fungsi mengembalikan array. | √ | × | |
max_by(x, y) | Mengkueri nilai dari x yang terkait dengan nilai terbesar dari bidang y. | √ | × | |
max_by(x, y, n) | Mengkueri nilai-nilai dari x yang terkait dengan n nilai terbesar dari bidang y. Fungsi mengembalikan array. | √ | × | |
min(x) | Mengkueri nilai terkecil dari bidang x. | √ | × | |
min(x, n) | Mengkueri n nilai terkecil dari bidang x. Fungsi mengembalikan array. | √ | × | |
min_by(x, y) | Mengkueri nilai dari x yang terkait dengan nilai terkecil dari bidang y. | √ | × | |
min_by(x, y, n) | Mengkueri nilai-nilai dari x yang terkait dengan n nilai terkecil dari bidang y. Fungsi mengembalikan array. | √ | × | |
skewness(x) | Menghitung kemiringan dari nilai-nilai bidang x. | √ | × | |
sum(x) | Menghitung jumlah dari nilai-nilai bidang x. | √ | × |
Kata-kata cadangan
Blok kode berikut menunjukkan semua kata-kata cadangan dalam pernyataan SQL:
AND
AS
BETWEEN
BY
CASE
CAST
CROSS
CUBE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
DISTINCT
ELSE
END
ESCAPE
EXCEPT
EXISTS
FROM
GROUP
GROUPING
HAVING
IN
INNER
INSERT
INTERSECT
INTO
IS
JOIN
LEFT
LIKE
LIMIT
LOCALTIME
LOCALTIMESTAMP
NATURAL
NOT
NULL
ON
OR
ORDER
OUTER
RIGHT
ROLLUP
SELECT
THEN
TRUE
UNION
UNNEST
VALUES
WHEN
WHERE
WITH