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:

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 StateEventTypetertentu.

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.