Tutorial: Mempelajari operator umum
Berlaku untuk: ✅Microsoft Fabric✅✅
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 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.
Contoh dalam tutorial ini menggunakan StormEvents
tabel, yang tersedia untuk umum dalam data sampel Analitikcuaca.
Prasyarat
Untuk menjalankan kueri berikut, Anda memerlukan lingkungan kueri dengan akses ke data sampel. Anda bisa menggunakan salah satu hal berikut ini:
- Akun Microsoft atau identitas pengguna Microsoft Entra untuk masuk ke kluster bantuan
- Akun Microsoft atau identitas pengguna Microsoft Entra
- Ruang kerja Fabric dengan kapasitas yang diaktifkan Microsoft Fabric
Menghitung baris
Mulailah dengan menggunakan operator hitungan untuk menemukan jumlah rekaman badai StormEvents
dalam tabel.
StormEvents
| count
Hasil
Hitung |
---|
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 lima dari 22 kolom yang dikembalikan. Untuk melihat output lengkap, jalankan kueri.
StartTime | EndTime | EpisodeId | EventId | Status | 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 | Sengkayan | ... |
2007-09-18T20:00:00Z | 2007-09-19T18:00:00Z | 11074 | 60904 | FLORIDA | Hujan Lebat | ... |
Pilih subset kolom
Gunakan operator proyek untuk menyederhanakan tampilan dan memilih subset kolom tertentu. Penggunaan project
sering kali lebih efisien dan lebih mudah dibaca daripada melihat semua kolom.
StormEvents
| take 5
| project State, EventType, DamageProperty
Hasil
Status | EventType | DamageProperty |
---|---|---|
ATLANTIK SELATAN | Sengkayan | 0 |
FLORIDA | Hujan Lebat | 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 berbeda untuk mencantumkan semua jenis badai unik.
StormEvents
| distinct EventType
Ada 46 jenis badai di meja. Berikut adalah sampel 10 dari mereka.
EventType |
---|
Angin Badai Petir |
Hujan es |
Banjir Bandang |
Kekeringan |
Cuaca Musim Dingin |
Badai Musim Dingin |
Salju Tebal |
Angin Kencang |
Beku/Beku |
Banjir |
... |
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 pengurutan 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
Hasil
StartTime | EndTime | Status | 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 |
... | ... | ... | ... | ... |
Filter menurut kondisi
Operator tempat memfilter baris data berdasarkan kriteria tertentu.
Kueri berikut mencari peristiwa badai secara spesifikState
.EventType
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty
Ada 146 peristiwa yang cocok dengan kondisi ini. Berikut adalah sampel 5 dari mereka.
StartTime | EndTime | Status | 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 |
... | ... | ... | ... | ... |
Filter menurut rentang tanggal dan waktu
Gunakan antara operator untuk memfilter data berdasarkan rentang waktu tertentu.
Kueri berikut menemukan semua peristiwa badai antara 1 Agustus 2007 dan 30 Agustus 2007, bersama dengan status, jenis peristiwa, waktu mulai dan berakhir. Hasilnya kemudian diurutkan dalam urutan naik menurut waktu mulai.
StormEvents
| where StartTime between (datetime(2007-08-01 00:00:00) .. datetime(2007-08-30 23:59:59))
| project State, EventType, StartTime, EndTime
| sort by StartTime asc
Hasil
Status | Eventype | StartTime | EndTime |
---|---|---|---|
GEORGIA | Panas Berlebihan | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
TENNESSEE | Kekeringan | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
TENNESSEE | Kekeringan | 2007-08-01 00:00:00 | 2007-08-3123:59:00 |
CAROLINA SELATAN | Kekeringan | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
TENNESSEE | Kekeringan | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
GEORGIA | Panas Berlebihan | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
TENNESSEE | Kekeringan | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
MINNESOTA | Kekeringan | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
WISCONSIN | Kekeringan | 2007-08-01 00:00:00 | 2007-08-31 23:59:00 |
GEORGIA | Panas Berlebihan | 2007-08-01 00:00:00 | 2007-08-27 23:59:00 |
... | ... | ... | ... |
Mendapatkan baris n teratas
Operator atas mengembalikan baris n pertama yang diurutkan menurut kolom yang ditentukan.
Kueri berikut mengembalikan lima banjir Texas yang menyebabkan properti yang paling rusak.
StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty
Hasil
StartTime | EndTime | Status | 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
Hasil
StartTime | EndTime | 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 paling besar 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
Hasil
StartTime | EndTime | ... | 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]
Hasil
EventId | Sumber | 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.