Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
OpenSearch bahasa SQL
Bagian ini berisi pengantar dasar untuk query CloudWatch Log menggunakan OpenSearch SQL. Ini memberikan opsi yang akrab jika Anda terbiasa bekerja dengan database relasional. OpenSearch SQL menawarkan subset fungsionalitas SQL, menjadikannya pilihan yang baik untuk melakukan kueri ad-hoc dan tugas analisis data. Dengan OpenSearch SQL, Anda dapat menggunakan perintah seperti SELECT, FROM, WHERE, GROUP BY, HAVING, dan berbagai perintah dan fungsi SQL lainnya. Anda dapat mengeksekusi JOINs di seluruh grup log, mengkorelasikan data di seluruh grup log menggunakan sub-kueri, dan menggunakan kumpulan kaya fungsi JSON, matematika, string, kondisional, dan SQL lainnya untuk melakukan analisis yang kuat pada data log dan keamanan.
Anda dapat menggunakan OpenSearch SQL hanya untuk kueri grup log di Kelas Log Standar. Saat memilih grup log mana yang akan ditanyakan, Anda dapat memilih satu grup log, kumpulan grup log yang berbagi awalan, atau memilih semua grup log
catatan
Tabel berikut mencantumkan perintah dan fungsi SQL yang didukung di CloudWatch Log Untuk informasi tentang semua perintah OpenSearch SQL termasuk sintaks, lihat perintah SQL yang didukung dalam Panduan Pengembang OpenSearch Layanan.
Perintah SQL yang didukung
catatan
Di kolom query contoh, ganti sesuai
kebutuhan tergantung pada sumber data yang Anda kueri. <logGroup>
Perintah atau fungsi | Kueri contoh | Deskripsi |
---|---|---|
SELECT |
|
Menampilkan nilai yang diproyeksikan. |
FROM |
|
Klausa bawaan yang menentukan tabel sumber atau tampilan untuk mengambil data, mendukung berbagai jenis gabungan dan subkueri. |
WHERE |
|
Memfilter peristiwa log berdasarkan kriteria bidang yang disediakan. |
GROUP BY |
|
Grup mencatat peristiwa berdasarkan kategori dan menemukan rata-rata berdasarkan statistik. |
MEMILIKI |
|
Memfilter hasil berdasarkan kondisi pengelompokan. |
ORDER BY |
|
Memesan hasil berdasarkan bidang dalam klausa ORDER BY. Anda dapat mengurutkan dalam urutan menurun atau naik. |
BERGABUNG |
|
Bergabung dengan hasil untuk dua tabel berdasarkan bidang umum. Inner JOIN atau Left Outer Join harus ditentukan |
LIMIT |
|
Membatasi hasil kueri yang ditampilkan ke baris N pertama. |
Fungsi string |
|
Fungsi bawaan di SQL yang dapat memanipulasi dan mengubah string dan data teks dalam kueri SQL. Misalnya, mengonversi kasus, menggabungkan string, mengekstraksi bagian, dan membersihkan teks. |
Fungsi tanggal |
|
Fungsi bawaan untuk menangani dan mengubah data tanggal dan stempel waktu dalam kueri SQL. Misalnya, date_add, date_format, datediff, dan current_date. |
Fungsi kondisional |
|
Fungsi bawaan yang melakukan tindakan berdasarkan kondisi tertentu, atau yang mengevaluasi ekspresi secara kondisional. Misalnya, CASE dan IF. |
Fungsi Aggegrate |
|
Fungsi bawaan yang melakukan perhitungan pada beberapa baris untuk menghasilkan nilai ringkasan tunggal. Misalnya, SUM, COUNT, AVG, MAX, dan MIN. |
Fungsi JSON |
|
Fungsi bawaan untuk mengurai, mengekstrak, memodifikasi, dan menanyakan data berformat JSON dalam kueri SQL (misalnya, from_json, to_json, get_json_object, json_tuple) yang memungkinkan manipulasi struktur JSON dalam kumpulan data. |
Fungsi array |
|
Fungsi bawaan untuk bekerja dengan kolom tipe array dalam kueri SQL, memungkinkan operasi seperti mengakses, memodifikasi, dan menganalisis data array (misalnya, size, explode, array_contains). |
Fungsi jendela |
|
Fungsi bawaan yang melakukan perhitungan di serangkaian baris tertentu yang terkait dengan baris (jendela) saat ini, memungkinkan operasi seperti peringkat, total berjalan, dan rata-rata bergerak. Misalnya, ROW_NUMBER, RANK, LAG, dan LEAD |
Fungsi konversi |
|
Fungsi bawaan untuk mengonversi data dari satu jenis ke jenis lainnya dalam kueri SQL, memungkinkan transformasi tipe data dan konversi format. Misalnya, CAST, TO_DATE, TO_TIMESTAMP, dan BINARY. |
Fungsi predikat |
|
Fungsi bawaan yang mengevaluasi kondisi dan mengembalikan nilai boolean (benar/salah) berdasarkan kriteria atau pola yang ditentukan. Misalnya, IN, LIKE, BETHER, IS NULL, dan EXISTS. |
Pilih beberapa grup log |
|
Memungkinkan Anda menentukan beberapa grup log dalam pernyataan SELECT |
SQL yang didukung untuk multi-log-group kueri
Untuk mendukung kasus penggunaan untuk menanyakan beberapa grup log di SQL, Anda dapat menggunakan perintah. logGroups
Dengan menggunakan sintaks ini, Anda dapat menanyakan beberapa grup log dengan menentukannya dalam perintah FROM.
Sintaksis:
`logGroups( logGroupIdentifier: ['LogGroup1','LogGroup2', ...'LogGroupn'] )
Dalam sintaks ini, Anda dapat menentukan hingga 50 grup log dalam logGroupIdentifier
parameter. Untuk mereferensikan grup log di akun pemantauan, gunakan ARNs alih-alih LogGroup
nama.
Contoh kueri:
SELECT LG1.Column1, LG1.Column2 from `logGroups( logGroupIdentifier: ['LogGroup1', 'LogGroup2'] )` as LG1 WHERE LG1.Column1 = 'ABC'
Sintaks berikut yang melibatkan beberapa grup log setelah FROM
pernyataan TIDAK didukung saat menanyakan CloudWatch Log.
SELECT Column1, Column2 FROM 'LogGroup1', 'LogGroup2', ...'LogGroupn' WHERE Column1 = 'ABC'
Pembatasan
Pembatasan berikut berlaku saat Anda menggunakan OpenSearch SQL untuk melakukan kueri di Wawasan CloudWatch Log.
-
Anda hanya dapat menyertakan satu JOIN dalam pernyataan SELECT.
-
Hanya satu tingkat subkueri bersarang yang didukung.
-
Beberapa kueri pernyataan yang dipisahkan oleh titik dua (;) tidak didukung.
-
Kueri yang berisi nama bidang yang identik tetapi berbeda hanya dalam kasus (seperti field1 dan FIELD1) tidak didukung.
Misalnya, kueri berikut tidak didukung:
Select AWSAccountId, AwsAccountId from LogGroup
Namun, kueri berikut didukung karena nama bidang (
@logStream
) identik di kedua grup log:Select a.`@logStream`, b.`@logStream` from Table A INNER Join Table B on a.id = b.id
-
Fungsi dan ekspresi harus beroperasi pada nama bidang dan menjadi bagian dari pernyataan SELECT dengan grup log yang ditentukan dalam klausa FROM.
Misalnya, kueri ini tidak didukung:
SELECT cos(10) FROM LogGroup
Kueri ini didukung:
SELECT cos(field1) FROM LogGroup
-
Saat menggunakan perintah SQL atau PPL, lampirkan bidang tertentu di backticks agar berhasil menanyakannya. Backticks diperlukan untuk bidang dengan karakter khusus (non-alfabet dan non-numerik). Misalnya, lampirkan,
@message
Operation.Export
, danTest::Field
di backticks. Anda tidak perlu melampirkan bidang dengan nama abjad murni di backticks.Contoh kueri dengan bidang sederhana:
SELECT SessionToken, Operation, StartTime FROM `LogGroup-A` LIMIT 1000;
Kueri serupa dengan backticks ditambahkan:
SELECT `@SessionToken`, `@Operation`, `@StartTime` FROM `LogGroup-A` LIMIT 1000;