Tutorial: Mempelajari operator umum

Beralih layanan menggunakan menu tarik-turun Versi. Pelajari selengkapnya tentang navigasi.
Berlaku untuk: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Anda menggunakan Kusto Query Language (KQL) untuk menulis kueri di Azure Data Explorer, Azure Monitor Log Analytics, Microsoft Sentinel, dan banyak lagi. Tutorial ini memperkenalkan operator KQL penting yang Anda gunakan untuk mengakses dan menganalisis data Anda.

Untuk panduan lebih spesifik tentang cara melakukan kueri terhadap log di Azure Monitor, lihat Mulai dengan kueri log.

Catatan

Tidak dapat menemukan yang Anda cari? Artikel ini baru-baru ini dibagi, sebagai berikut:

Dalam tutorial ini, Anda akan belajar cara:

Contoh dalam tutorial ini menggunakan tabel StormEvents, yang tersedia untuk umum di gugus bantuan. Untuk meneroka dengan data Anda sendiri, buat kluster gratis Anda sendiri.

Contoh dalam tutorial ini menggunakan StormEvents tabel, yang tersedia untuk umum dalam Analitik Cuacadata sampel.

Prasyarat

Untuk menjalankan kueri berikut, Anda memerlukan lingkungan kueri dengan akses ke data sampel. Anda dapat menggunakan salah satu opsi berikut:

  • Akun Microsoft atau identitas pengguna Microsoft Entra untuk masuk ke kluster bantuan

Menghitung baris

Mulailah dengan menggunakan operator hitungan untuk menemukan jumlah rekaman badai StormEvents dalam tabel.

StormEvents 
| count

Hasil

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

Waktu Mulai WaktuAkhir EpisodeId EventId Keadaan JenisAcara ...
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

Keadaan EventType PropertiKerusakan
ATLANTIK SELATAN Sengkayan 0
FLORIDA Hujan Lebat 0
FLORIDA Tornado 6200000
GEORGIA Angin Badai Petir 2000
MISSISSIPPI Angin Badai Petir 20000

Mencantumkan nilai unik

Hasil kueri sebelumnya memperlihatkan beberapa jenis badai. Gunakan operator berbeda untuk mencantumkan semua jenis badai unik.

StormEvents 
| distinct EventType

Tabel berisi 46 jenis badai. 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
Embun Beku/Pembekuan
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

WaktuMulai WaktuAkhir Keadaan JenisAcara PropertiKerusakan
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 di State tertentu dari EventType tertentu.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| project StartTime, EndTime, State, EventType, DamageProperty

Ada 146 peristiwa yang cocok dengan kondisi ini. Berikut adalah sampel lima dari mereka.

WaktuMulai WaktuAkhir Keadaan EventType PropertiKerusakan
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 waktu akhir. Kueri mengurutkan hasil 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

Keadaan Eventype WaktuMulai WaktuAkhir
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
... ... ... ...

Dapatkan baris n teratas

Operator atas mengembalikan baris n pertama yang diurutkan menurut kolom yang ditentukan.

Kueri berikut menghasilkan lima kejadian banjir di Texas yang menyebabkan kerusakan properti terbesar.

StormEvents
| where State == 'TEXAS' and EventType == 'Flood'
| top 5 by DamageProperty
| project StartTime, EndTime, State, EventType, DamageProperty

Hasil

WaktuMulai WaktuAkhir Keadaan EventType PropertiKerusakan
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 dari operator itu penting. Jika Anda memasukkan top sebelumnya where dalam contoh ini, Anda mendapatkan hasil yang berbeda. Setiap operator mengubah data secara berurutan. Untuk informasi selengkapnya, lihat pernyataan ekspresi tabular.

Membuat kolom terhitung

Anda dapat menggunakan operator project dan operator extend untuk membuat kolom terhitung.

Gunakan project untuk menentukan hanya kolom yang ingin Anda tampilkan. Gunakan extend untuk menambahkan kolom terhitung ke akhir tabel.

Kueri berikut membuat kolom terhitung Duration dengan perbedaan antara StartTime dan EndTime. Karena Anda hanya ingin menampilkan 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

WaktuMulai WaktuAkhir Durasi PropertiKerusakan
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

WaktuMulai WaktuAkhir ... 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 set yang lain

Pemetaan statis adalah teknik yang berguna untuk mengubah presentasi hasil Anda. Di KQL, Anda dapat melakukan pemetaan statis dengan menggunakan kamus dan aksesor dinamis 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 Nama Ramah
68796 Manajer Darurat Umum
... ... ...
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.