Tutorial: Mempelajari operator umum
Bahasa Kueri Kusto (KQL) digunakan untuk menulis kueri di Azure Data Explorer, Azure Monitor Log Analytics, Azure Sentinel, dan banyak lagi. Tutorial ini adalah pengantar operator KQL penting yang digunakan untuk mengakses dan menganalisis data Anda.
Untuk panduan yang lebih spesifik tentang cara mengkueri log di Azure Monitor, lihat Mulai menggunakan kueri log.
Catatan
Tidak dapat menemukan yang Anda cari? Artikel ini baru-baru ini dibagi, sebagai berikut:
- Pelajari operator umum (artikel ini)
- Menggunakan fungsi agregasi
- Menggabungkan data dari beberapa tabel
- Membuat visualisasi geospasial
Dalam tutorial ini, Anda akan mempelajari cara:
Contoh dalam tutorial ini menggunakan StormEvents
tabel , yang tersedia untuk umum di kluster bantuan. Untuk menjelajahi dengan data Anda sendiri, buat kluster gratis Anda sendiri.
Prasyarat
- Akun Microsoft atau Microsoft Entra identitas pengguna untuk masuk ke kluster bantuan
Menghitung baris
Mulailah dengan menggunakan operator hitungan untuk menemukan jumlah rekaman badai StormEvents
dalam tabel.
StormEvents
| count
Output
Hitungan |
---|
59066 |
Lihat sampel data
Untuk memahami data, gunakan operator ambil untuk melihat sampel rekaman. Operator ini mengembalikan jumlah baris arbitrer tertentu dari tabel, yang dapat berguna untuk mempratinjau struktur dan konten data umum.
StormEvents
| take 5
Tabel berikut ini hanya memperlihatkan 6 dari 22 kolom yang dikembalikan. Untuk melihat output lengkap, jalankan kueri.
Waktu mulai | Akhir waktu | EpisodeId | EventId | Provinsi | EventType | ... |
---|---|---|---|---|---|---|
2007-09-20T21:57:00Z | 2007-09-20T22:05:00Z | 11078 | 60913 | FLORIDA | Tornado | ... |
2007-12-20T07:50:00Z | 2007-12-20T07:53:00Z | 12554 | 68796 | MISSISSIPPI | Angin Badai Petir | ... |
2007-12-30T16:00:00Z | 2007-12-30T16:05:00Z | 11749 | 64588 | GEORGIA | Angin Badai Petir | ... |
2007-09-29T08:11:00Z | 2007-09-29T08:11:00Z | 11091 | 61032 | ATLANTIK SELATAN | Puting beliung | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Hujan Deras | ... |
Pilih subset kolom
Gunakan operator proyek untuk menyederhanakan tampilan dan memilih subset kolom tertentu. Penggunaan project
seringkali lebih efisien dan lebih mudah dibaca daripada melihat semua kolom.
StormEvents
| take 5
| project State, EventType, DamageProperty
Output
Provinsi | EventType | DamageProperty |
---|---|---|
ATLANTIK SELATAN | Puting beliung | 0 |
FLORIDA | Hujan Deras | 0 |
FLORIDA | Tornado | 6200000 |
GEORGIA | Angin Badai Petir | 2000 |
MISSISSIPPI | Angin Badai Petir | 20000 |
Mencantumkan nilai unik
Tampaknya ada beberapa jenis badai berdasarkan hasil kueri sebelumnya. Gunakan operator yang berbeda untuk mencantumkan semua jenis badai unik.
StormEvents
| distinct EventType
Ada 46 jenis badai di tabel. Berikut sampel 10 di antaranya.
EventType |
---|
Angin Badai Petir |
Hujan Es |
Banjir Bandang |
Kekeringan |
Cuaca Musim Dingin |
Badai Musim Dingin |
Salju Tebal |
Angin Kencang |
Beku/Beku |
Banjir |
... |
Filter menurut kondisi
Operator tempat memfilter baris data berdasarkan kriteria tertentu.
Kueri berikut mencari peristiwa badai dalam spesifik State
EventType
tertentu.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
Ada 146 peristiwa yang cocok dengan kondisi ini. Berikut sampel 5 di antaranya.
Waktu mulai | Akhir waktu | Provinsi | EventType | DamageProperty |
---|---|---|---|---|
2007-01-13T08:45:00Z | 13-01-2007T10:30:00Z | TEXAS | Banjir | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Banjir | 0 |
2007-01-13T09:30:00Z | 2007-01-13T21:00:00Z | TEXAS | Banjir | 0 |
2007-01-15T22:00:00Z | 2007-01-16T22:00:00Z | TEXAS | Banjir | 20000 |
2007-03-12T02:30:00Z | 2007-03-12T06:45:00Z | TEXAS | Banjir | 0 |
... | ... | ... | ... | ... |
Urukan hasil
Untuk melihat banjir teratas di Texas yang menyebabkan kerusakan paling besar, gunakan operator pengurutan untuk mengatur baris dalam urutan menurun berdasarkan DamageProperty
kolom. Urutan penyortiran default adalah turun. Untuk mengurutkan dalam urutan naik, tentukan asc
.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| sort by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Output
Waktu mulai | Akhir waktu | Provinsi | EventType | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Banjir | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Banjir | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Banjir | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Banjir | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Banjir | 750000 |
... | ... | ... | ... | ... |
Mendapatkan baris n teratas
Operator teratas mengembalikan baris n pertama yang diurutkan menurut kolom yang ditentukan.
Kueri berikut mengembalikan lima banjir Texas yang menyebabkan properti paling rusak.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Output
Waktu mulai | Akhir waktu | Provinsi | EventType | DamageProperty |
---|---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | TEXAS | Banjir | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | TEXAS | Banjir | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | TEXAS | Banjir | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | TEXAS | Banjir | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | TEXAS | Banjir | 750000 |
Catatan
Urutan operator penting. Jika Anda menempatkan top
sebelum where
di sini, Anda akan mendapatkan hasil yang berbeda. Ini karena data diubah oleh setiap operator secara berurutan. Untuk mempelajari selengkapnya, lihat pernyataan ekspresi tabular.
Membuat kolom terhitung
Operator proyek dan perluas dapat membuat kolom terhitung.
Gunakan project
untuk menentukan hanya kolom yang ingin Anda tampilkan, dan gunakan extend
untuk menambahkan kolom terhitung ke akhir tabel.
Kueri berikut membuat kolom terhitung Duration
dengan perbedaan antara StartTime
dan EndTime
. Karena kita hanya ingin melihat beberapa kolom yang dipilih, menggunakan project
adalah pilihan yang lebih baik dalam hal ini.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| project StartTime, EndTime, Duration = EndTime - StartTime, DamageProperty
Output
Waktu mulai | Akhir waktu | Durasi | DamageProperty |
---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | 1.01:30:00 | 5000000 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | 12:00:00 | 1200000 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | 05:00:00 | 1000000 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | 08:00:00 | 750000 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | 03:00:00 | 750000 |
Jika Anda melihat kolom komputasi Duration
, Anda mungkin melihat bahwa banjir yang menyebabkan kerusakan terbanyak juga merupakan banjir terpanjang.
Gunakan extend
untuk menampilkan kolom terhitung Duration
bersama dengan semua kolom lainnya. Kolom Duration
ditambahkan sebagai kolom terakhir.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty desc
| extend Duration = EndTime - StartTime
Output
Waktu mulai | Akhir waktu | ... | Durasi |
---|---|---|---|
2007-08-18T21:30:00Z | 2007-08-19T23:00:00Z | ... | 1.01:30:00 |
2007-06-27T00:00:00Z | 2007-06-27T12:00:00Z | ... | 12:00:00 |
2007-06-28T18:00:00Z | 2007-06-28T23:00:00Z | ... | 05:00:00 |
2007-06-27T00:00:00Z | 2007-06-27T08:00:00Z | ... | 08:00:00 |
2007-06-26T20:00:00Z | 2007-06-26T23:00:00Z | ... | 03:00:00 |
Memetakan nilai dari satu set ke yang lain
Pemetaan statis adalah teknik yang berguna untuk mengubah presentasi hasil Anda. Di KQL, salah satu cara untuk melakukan pemetaan statis adalah dengan menggunakan kamus dinamis dan aksesor untuk memetakan nilai dari satu set ke yang lain.
let sourceMapping = dynamic(
{
"Emergency Manager" : "Public",
"Utility Company" : "Private"
});
StormEvents
| where Source == "Emergency Manager" or Source == "Utility Company"
| project EventId, Source, FriendlyName = sourceMapping[Source]
Output
EventId | Source | FriendlyName |
---|---|---|
68796 | Manajer Darurat | Publik |
... | ... | ... |
72609 | Perusahaan Utilitas | Privat |
... | ... | ... |
Langkah selanjutnya
Sekarang setelah Anda terbiasa dengan hal-hal penting dalam menulis kueri Kusto, lanjutkan ke tutorial berikutnya dan pelajari cara menggunakan fungsi agregasi untuk mendapatkan wawasan yang lebih mendalam tentang data Anda.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk